├── .github
├── release-drafter.yml
└── workflows
│ ├── build.yml
│ ├── release.yml
│ └── stale.yml
├── .gitignore
├── .npmignore
├── .prettierrc
├── eslint.config.js
├── index.ts
├── index_test.ts
├── license
├── package.json
├── readme.md
├── testdata
├── output
│ └── .gitignore
├── sample.000
├── sample.bad
├── sample.cryllic.kml
├── sample.csv
├── sample.dbf
├── sample.dgn
├── sample.dxf
├── sample.empty.zip
├── sample.gdb.zip
├── sample.geojson
├── sample.geom.csv
├── sample.gfs
├── sample.gml
├── sample.gmt
├── sample.gpkg
├── sample.gpx
├── sample.gtm
├── sample.gxt
├── sample.itf
├── sample.jml
├── sample.json
├── sample.kml
├── sample.kmz
├── sample.large.shp.zip
├── sample.map.zip
├── sample.mapml
├── sample.no-shx.shp
├── sample.nogeom.csv
├── sample.rss
├── sample.rti.zip
├── sample.shp
├── sample.shp.zip
├── sample.shx
├── sample.shz
├── sample.vdv
├── sample.wkt.csv
└── simple.shp.zip
├── tsconfig.json
└── vitest.config.ts
/.github/release-drafter.yml:
--------------------------------------------------------------------------------
1 | name-template: "v$RESOLVED_VERSION"
2 | tag-template: "v$RESOLVED_VERSION"
3 | template: |
4 | $CHANGES
5 | category-template: "#### $TITLE"
6 | change-template: "* #$NUMBER - $TITLE (@$AUTHOR)"
7 | categories:
8 | - title: "Breaking changes"
9 | label: "breaking"
10 | - title: "Enhancements"
11 | label: "enhancement"
12 | - title: "Bug fixes"
13 | label: "bug"
14 | - title: "Maintenance"
15 | label: "chore"
16 |
17 | version-resolver:
18 | major:
19 | labels:
20 | - "breaking"
21 | minor:
22 | labels:
23 | - "enhancement"
24 | patch:
25 | labels:
26 | - "bug"
27 | - "chore"
28 |
29 | exclude-labels:
30 | - "skip-changelog"
31 |
--------------------------------------------------------------------------------
/.github/workflows/build.yml:
--------------------------------------------------------------------------------
1 | name: build
2 | on:
3 | push:
4 | branches:
5 | - master
6 | pull_request:
7 | jobs:
8 | build:
9 | runs-on: ubuntu-latest
10 | container:
11 | image: ghcr.io/osgeo/gdal:ubuntu-full-latest
12 | options: --user 1001
13 | strategy:
14 | matrix:
15 | node: ["18", "20", "22"]
16 | name: Node v${{ matrix.node }}
17 | steps:
18 | - uses: actions/checkout@v3
19 | - uses: actions/setup-node@v3
20 | with:
21 | node-version: ${{ matrix.node }}
22 | - run: npm install
23 | - run: npm run fmt-check
24 | - run: npm run lint
25 | - run: npm run test
26 |
--------------------------------------------------------------------------------
/.github/workflows/release.yml:
--------------------------------------------------------------------------------
1 | name: release-draft
2 | on:
3 | push:
4 | branches:
5 | - master
6 | jobs:
7 | update_release_draft:
8 | runs-on: ubuntu-latest
9 | steps:
10 | - uses: release-drafter/release-drafter@master
11 | env:
12 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
13 |
--------------------------------------------------------------------------------
/.github/workflows/stale.yml:
--------------------------------------------------------------------------------
1 | name: stale-issues-prs
2 | on:
3 | workflow_dispatch:
4 | schedule:
5 | - cron: "0 0 * * *"
6 |
7 | jobs:
8 | stale:
9 | runs-on: ubuntu-latest
10 | steps:
11 | - uses: actions/stale@v3
12 | with:
13 | stale-issue-message: "This issue is stale because it has been open 30 days with no activity. Remove stale label or comment or this will be closed in 5 days."
14 | stale-pr-message: "This PR is stale because it has been open 30 days with no activity. Remove stale label or comment or this will be closed in 5 days."
15 | close-issue-message: "This issue was closed because it has been stalled for 5 days with no activity."
16 | days-before-stale: 30
17 | days-before-close: 5
18 | stale-issue-label: stale
19 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | node_modules
2 | npm_debug.log
3 | ogr_*
4 | .DS_Store
5 | coverage
6 | .nyc_output
7 | yarn.lock
8 | testdata/sample.no-shx.shx
9 | dist
10 | pnpm-lock.yaml
11 | pnpm-workspace.yaml
12 |
--------------------------------------------------------------------------------
/.npmignore:
--------------------------------------------------------------------------------
1 | testdata
2 |
--------------------------------------------------------------------------------
/.prettierrc:
--------------------------------------------------------------------------------
1 | {
2 | "semi": false,
3 | "bracketSpacing": false,
4 | "plugins": ["prettier-plugin-organize-imports"]
5 | }
6 |
--------------------------------------------------------------------------------
/eslint.config.js:
--------------------------------------------------------------------------------
1 | import js from "@eslint/js"
2 | import prettier from "eslint-plugin-prettier/recommended"
3 | import ts from "typescript-eslint"
4 |
5 | export default ts.config({
6 | extends: [js.configs.recommended, ...ts.configs.recommended, prettier],
7 | rules: {
8 | "prefer-const": 0,
9 | eqeqeq: [2, "smart"],
10 | "@typescript-eslint/no-explicit-any": 0,
11 | "@typescript-eslint/no-unused-vars": [
12 | "error",
13 | {
14 | argsIgnorePattern: "^_",
15 | caughtErrorsIgnorePattern: "^_",
16 | destructuredArrayIgnorePattern: "^_",
17 | varsIgnorePattern: "^_",
18 | ignoreRestSiblings: true,
19 | },
20 | ],
21 | },
22 | ignores: ["dist/**"],
23 | })
24 |
--------------------------------------------------------------------------------
/index.ts:
--------------------------------------------------------------------------------
1 | import archiver from "archiver"
2 | import {execFile} from "child_process"
3 | import {createReadStream} from "fs"
4 | import {tmpdir} from "os"
5 | import {extname, join} from "path"
6 | import {Readable, Stream} from "stream"
7 |
8 | type JSONLike = Record
9 | type RunOutput = {stdout: string; stderr: string}
10 |
11 | type Input = string | JSONLike | Stream
12 | interface Result {
13 | cmd: string
14 | text: string
15 | data?: JSONLike
16 | stream?: Readable
17 | extname?: string
18 | details: string
19 | }
20 | type Callback = (err: Error | null, res?: Result) => void
21 | interface Options {
22 | command?: string
23 | format?: string
24 | inputFormat?: string
25 | options?: string[]
26 | destination?: string
27 | env?: Record
28 | timeout?: number
29 | maxBuffer?: number
30 | skipFailures?: boolean
31 | }
32 |
33 | // Known /vsistdout/ support.
34 | const stdoutRe = /csv|geojson|georss|gml|gmt|gpx|jml|kml|mapml|pdf|vdv/i
35 | const vsiStdIn = "/vsistdin/"
36 | const vsiStdOut = "/vsistdout/"
37 |
38 | let uniq = Date.now()
39 |
40 | class Ogr2ogr implements PromiseLike {
41 | private inputStream?: Readable
42 | private inputPath: string
43 | private outputPath: string
44 | private outputFormat: string
45 | private outputExt: string
46 | private customCommand?: string
47 | private customOptions?: string[]
48 | private customDestination?: string
49 | private customEnv?: Record
50 | private timeout: number
51 | private maxBuffer: number
52 | private skipFailures: boolean
53 |
54 | constructor(input: Input, opts: Options = {}) {
55 | this.inputPath = opts.inputFormat
56 | ? opts.inputFormat + ":" + vsiStdIn
57 | : vsiStdIn
58 |
59 | this.outputFormat = opts.format ?? "GeoJSON"
60 | this.customCommand = opts.command
61 | this.customOptions = opts.options
62 | this.customDestination = opts.destination
63 | this.customEnv = opts.env
64 | this.timeout = opts.timeout ?? 0
65 | this.maxBuffer = opts.maxBuffer ?? 1024 * 1024 * 50
66 | this.skipFailures = opts.skipFailures ?? true
67 |
68 | let {path, ext} = this.newOutputPath(this.outputFormat)
69 | this.outputPath = path
70 | this.outputExt = ext
71 |
72 | if (input instanceof Readable) {
73 | this.inputStream = input
74 | } else if (typeof input === "string") {
75 | this.inputPath = this.newInputPath(input)
76 | } else {
77 | this.inputStream = Readable.from([JSON.stringify(input)])
78 | }
79 | }
80 |
81 | exec(cb: Callback) {
82 | this.run()
83 | .then((res) => cb(null, res))
84 | .catch((err) => cb(err))
85 | }
86 |
87 | then(
88 | onfulfilled?: (value: Result) => TResult1 | PromiseLike,
89 | onrejected?: (reason: string) => TResult2 | PromiseLike,
90 | ): PromiseLike {
91 | return this.run().then(onfulfilled, onrejected)
92 | }
93 |
94 | private newInputPath(p: string): string {
95 | let path = ""
96 | let ext = extname(p)
97 |
98 | switch (ext) {
99 | case ".zip":
100 | path = "/vsizip/"
101 | break
102 | case ".gz":
103 | path = "/vsigzip/"
104 | break
105 | case ".tar":
106 | path = "/vsitar/"
107 | break
108 | }
109 |
110 | if (/^(http|ftp)/.test(p)) {
111 | path += "/vsicurl/" + p
112 | return path
113 | }
114 |
115 | path += p
116 | return path
117 | }
118 |
119 | private newOutputPath(f: string) {
120 | let ext = "." + f.toLowerCase()
121 |
122 | if (stdoutRe.test(this.outputFormat)) {
123 | return {path: vsiStdOut, ext}
124 | }
125 |
126 | let path = join(tmpdir(), "/ogr_" + uniq++)
127 |
128 | switch (f.toLowerCase()) {
129 | case "esri shapefile":
130 | path += ".shz"
131 | ext = ".shz"
132 | break
133 | case "mapinfo file":
134 | case "flatgeobuf":
135 | ext = ".zip"
136 | break
137 | default:
138 | path += ext
139 | }
140 |
141 | return {path, ext}
142 | }
143 |
144 | private createZipStream(p: string) {
145 | let archive = archiver("zip")
146 | archive.directory(p, false)
147 | archive.on("error", console.error)
148 | archive.finalize()
149 | return archive
150 | }
151 |
152 | private async run() {
153 | let command = this.customCommand ?? "ogr2ogr"
154 | let args = ["-f", this.outputFormat]
155 | if (this.skipFailures) args.push("-skipfailures")
156 | args.push(this.customDestination || this.outputPath, this.inputPath)
157 | if (this.customOptions) args.push(...this.customOptions)
158 | let env = this.customEnv ? {...process.env, ...this.customEnv} : undefined
159 |
160 | let {stdout, stderr} = await new Promise((res, rej) => {
161 | let proc = execFile(
162 | command,
163 | args,
164 | {env, timeout: this.timeout, maxBuffer: this.maxBuffer},
165 | (err, stdout, stderr) => {
166 | if (err) rej(err)
167 | res({stdout, stderr})
168 | },
169 | )
170 | if (this.inputStream && proc.stdin) this.inputStream.pipe(proc.stdin)
171 | })
172 |
173 | let res: Result = {
174 | cmd: [command, ...args].join(" "),
175 | text: stdout,
176 | details: stderr,
177 | extname: this.outputExt,
178 | }
179 |
180 | if (/^geojson$/i.test(this.outputFormat)) {
181 | try {
182 | res.data = JSON.parse(stdout)
183 | } catch (_err) {
184 | // ignore error
185 | }
186 | }
187 |
188 | if (!this.customDestination && this.outputPath !== vsiStdOut) {
189 | if (this.outputExt === ".zip") {
190 | res.stream = this.createZipStream(this.outputPath)
191 | } else {
192 | res.stream = createReadStream(this.outputPath)
193 | }
194 | }
195 |
196 | return res
197 | }
198 | }
199 |
200 | export function ogr2ogr(input: Input, opts?: Options): Ogr2ogr {
201 | return new Ogr2ogr(input, opts)
202 | }
203 |
204 | ogr2ogr.version = async () => {
205 | let vers = await new Promise((res, rej) => {
206 | execFile("ogr2ogr", ["--version"], {}, (err, stdout) => {
207 | if (err) rej(err)
208 | res(stdout)
209 | })
210 | })
211 | return vers.trim()
212 | }
213 |
--------------------------------------------------------------------------------
/index_test.ts:
--------------------------------------------------------------------------------
1 | import {
2 | createReadStream,
3 | createWriteStream,
4 | ReadStream,
5 | statSync,
6 | writeFileSync,
7 | } from "fs"
8 | import {assert, test} from "vitest"
9 | import {ogr2ogr} from "./"
10 |
11 | let dir = __dirname + "/testdata/"
12 |
13 | test("ogr2ogr", async () => {
14 | let vers = await ogr2ogr.version()
15 | assert.match(vers, /^GDAL /)
16 |
17 | interface TT {
18 | file?: string
19 | url?: string
20 | in?: string
21 | out?: string
22 | opts?: string[]
23 | dest?: string
24 | stream?: boolean
25 | success: boolean
26 | }
27 | let table: TT[] = [
28 | // URL tests.
29 | {
30 | url: "https://gist.github.com/wavded/7376428/raw/971548233e441615a426794c766223488492ddb9/test.geojson",
31 | success: true,
32 | },
33 | {
34 | url: "https://gist.github.com/wavded/7376428/raw/971548233e441615a426794c766223488492ddb9/test.georss",
35 | success: true,
36 | },
37 |
38 | // From format conversions.
39 | {file: "sample.bad", success: false},
40 | {file: "sample.empty.zip", success: false},
41 | {file: "sample.000", success: true},
42 | {file: "sample.csv", success: true},
43 | {file: "sample.dbf", success: true},
44 | {file: "sample.dgn", success: true},
45 | {file: "sample.dxf", success: true},
46 | {file: "sample.gdb.zip", out: "dxf", success: true},
47 | {file: "sample.geojson", success: true},
48 | {file: "sample.gml", success: true},
49 | {file: "sample.gmt", success: true},
50 | {file: "sample.gxt", success: true},
51 | {file: "sample.itf", success: true},
52 | {file: "sample.json", success: true},
53 | {file: "sample.jml", stream: true, success: true},
54 | {file: "sample.kml", success: true},
55 | {file: "sample.kmz", success: true},
56 | {file: "sample.cryllic.kml", success: true},
57 | {file: "sample.map.zip", success: true},
58 | {file: "sample.mapml", stream: true, success: true},
59 | {file: "sample.rss", success: true},
60 | {file: "sample.rti.zip", out: "dxf", success: true},
61 | {file: "sample.shp", success: true},
62 | {file: "sample.shp.zip", success: true},
63 | {file: "sample.shz", success: true},
64 | {file: "sample.large.shp.zip", success: true},
65 | {file: "sample.vdv", stream: true, success: true},
66 |
67 | // Using custom options.
68 | {
69 | file: "sample.no-shx.shp",
70 | opts: ["--config", "SHAPE_RESTORE_SHX", "TRUE"],
71 | success: true,
72 | },
73 | {
74 | file: "sample.geom.csv",
75 | opts: ["-oo", "GEOM_POSSIBLE_NAMES=the_geom"],
76 | success: true,
77 | },
78 |
79 | // To format conversions.
80 | {file: "sample.json", success: true, out: "csv"},
81 | {file: "sample.json", success: true, out: "dgn"},
82 | {file: "sample.json", success: true, out: "dxf"},
83 | {file: "sample.json", success: true, out: "esri shapefile"},
84 | {file: "sample.json", success: true, out: "flatgeobuf"},
85 | {file: "sample.json", success: true, out: "geoconcept"},
86 | {file: "sample.json", success: true, out: "geojson"},
87 | {file: "sample.json", success: true, out: "geojsonseq"},
88 | {file: "sample.json", success: true, out: "georss"},
89 | {file: "sample.json", success: true, out: "gml"},
90 | {file: "sample.json", success: true, out: "gmt"},
91 | {file: "sample.json", success: true, out: "gpkg"},
92 | {file: "sample.json", success: true, out: "gpx"},
93 | {file: "sample.json", success: true, out: "jml"},
94 | {file: "sample.json", success: true, out: "kml"},
95 | {file: "sample.json", success: true, out: "mapml"},
96 | {file: "sample.json", success: true, out: "mapinfo file"},
97 | {file: "sample.json", success: true, out: "ods"},
98 | {file: "sample.json", success: true, out: "pdf"},
99 | {file: "sample.json", success: true, out: "vdv"},
100 | {file: "sample.json", success: true, out: "xlsx"},
101 |
102 | // Known supported stream conversions.
103 | {file: "sample.csv", stream: true, in: "csv", success: true},
104 | {file: "sample.wkt.csv", stream: true, in: "csv", success: true},
105 | {file: "sample.json", stream: true, success: true},
106 | {file: "sample.rss", stream: true, success: true},
107 | {file: "sample.gml", stream: true, success: true},
108 | {file: "sample.gmt", stream: true, success: true},
109 | {file: "sample.gpx", stream: true, success: true},
110 | {file: "sample.jml", stream: true, success: true},
111 | {file: "sample.kml", stream: true, success: true},
112 | {file: "sample.mapml", stream: true, success: true},
113 | {file: "sample.vdv", stream: true, success: true},
114 |
115 | // Custom destinations. (e.g. database)
116 | {
117 | file: "sample.json",
118 | success: true,
119 | dest: dir + "output/custom.geojson",
120 | },
121 | ]
122 |
123 | for (let tt of table) {
124 | try {
125 | let input: string | ReadStream = tt.url ? tt.url : dir + tt.file
126 | if (tt.stream) {
127 | input = createReadStream(input)
128 | }
129 |
130 | let res = await ogr2ogr(input, {
131 | inputFormat: tt.in,
132 | format: tt.out,
133 | options: tt.opts,
134 | destination: tt.dest,
135 | maxBuffer: 1024 * 1024 * 1024,
136 | })
137 |
138 | if (tt.dest) {
139 | statSync(tt.dest)
140 | assert.ok(true)
141 | } else if (!tt.out) {
142 | assert.equal(res.data && res.data.type, "FeatureCollection", res.cmd)
143 | } else {
144 | assert(res.text || res.stream, res.cmd)
145 |
146 | let fn = dir + "output/r_" + tt.out + res.extname
147 | if (res.stream) {
148 | res.stream.pipe(createWriteStream(fn))
149 | } else {
150 | writeFileSync(fn, res.text)
151 | }
152 | }
153 | assert(tt.success)
154 | } catch (err) {
155 | console.log(err)
156 | assert.notOk(tt.success)
157 | }
158 | }
159 | })
160 |
--------------------------------------------------------------------------------
/license:
--------------------------------------------------------------------------------
1 | Copyright (c) 2021 Marc Harter
2 |
3 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the 'Software'), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
4 |
5 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
6 |
7 | THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
8 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "ogr2ogr",
3 | "version": "6.0.0",
4 | "description": "ogr2ogr wrapper w/ multiple format support",
5 | "keywords": [
6 | "ogr2ogr",
7 | "stream",
8 | "proj4",
9 | "gdal"
10 | ],
11 | "author": "Marc Harter ",
12 | "repository": {
13 | "type": "git",
14 | "url": "http://github.com/wavded/ogr2ogr.git"
15 | },
16 | "homepage": "http://github.com/wavded/ogr2ogr",
17 | "type": "module",
18 | "exports": {
19 | ".": {
20 | "import": {
21 | "types": "./dist/index.d.ts",
22 | "default": "./dist/index.js"
23 | },
24 | "require": {
25 | "types": "./dist/index.d.cts",
26 | "default": "./dist/index.cjs"
27 | }
28 | }
29 | },
30 | "scripts": {
31 | "prepublishOnly": "pnpm build",
32 | "build": "tsup index.ts --format esm,cjs --dts --clean",
33 | "test": "vitest run --silent",
34 | "lint": "tsc --noEmit && eslint .",
35 | "fmt": "prettier --write .",
36 | "fmt-check": "prettier --check ."
37 | },
38 | "dependencies": {
39 | "archiver": "^7.0.1"
40 | },
41 | "devDependencies": {
42 | "@eslint/js": "^9.24.0",
43 | "@types/archiver": "^6.0.3",
44 | "@types/node": "^22.14.1",
45 | "eslint": "^9.24.0",
46 | "eslint-config-prettier": "^10.1.2",
47 | "eslint-plugin-prettier": "^5.2.6",
48 | "prettier": "^3.5.3",
49 | "prettier-plugin-organize-imports": "^4.1.0",
50 | "ts-node": "^10.9.2",
51 | "tsup": "^8.4.0",
52 | "typescript": "^5.8.3",
53 | "typescript-eslint": "^8.30.1",
54 | "vitest": "^3.1.1"
55 | },
56 | "engines": {
57 | "node": ">=18"
58 | }
59 | }
60 |
--------------------------------------------------------------------------------
/readme.md:
--------------------------------------------------------------------------------
1 | [](https://github.com/wavded/ogr2ogr/actions/workflows/build.yml) [](https://npmjs.com/package/ogr2ogr) 
2 |
3 | ogr2ogr wraps the `ogr2ogr` GDAL tool to enable file conversion and re-projection of spatial data in simplified friendly API.
4 |
5 | ## Installation
6 |
7 | 1. [Install GDAL tools][1] (includes the `ogr2ogr` command line tool)
8 |
9 | 2. Install package:
10 |
11 | ```sh
12 | npm install ogr2ogr
13 | ```
14 |
15 | ## Usage
16 |
17 | ogr2ogr takes either a path, a stream, or a [GeoJSON][2] object. The result of the transformation will depend on the format returned.
18 |
19 | ```javascript
20 | // Using ESM or Typescript
21 | import {ogr2ogr} from 'ogr2ogr'
22 | // Using CommonJS modules
23 | const {ogr2ogr} = require('ogr2ogr')
24 |
25 | // Promise API
26 | (async() {
27 | // Convert path to GeoJSON.
28 | let {data} = await ogr2ogr('/path/to/spatial/file')
29 | console.log(data)
30 |
31 | // Convert GeoJSON object to ESRI Shapefile stream.
32 | let {stream} = await ogr2ogr(data, {format: 'ESRI Shapefile'})
33 |
34 | // Convert ESRI Shapefile stream to KML text.
35 | let {text} = await ogr2ogr(stream, {format: 'KML'})
36 | console.log(text)
37 | })()
38 |
39 | // Callback API
40 | ogr2ogr('/path/to/spatial/file').exec((err, {data}) => {
41 | console.log(data)
42 | })
43 | ```
44 |
45 | ## Formats
46 |
47 | ogr2ogr has varying support for format input and output. Consult the particular [driver][3] you are interested in for more details. It is highly recommend to run the latest version of GDAL to get the best support. This project attempts to cast the widest net for support. Here are some notables:
48 |
49 | | Drivers | Output | Notes |
50 | | ----------------------------------------------------- | -------- | ------------------------------------------- |
51 | | GeoJSON | `data` | Default format returned when none specified |
52 | | CSV, GeoRSS, GML, GMT, GPX, JML, KML, MapML, PDF, VDV | `text` | Drivers supporting `/vsidout/` return text |
53 | | Other | `stream` | All other drivers return a file stream |
54 |
55 | ## API
56 |
57 | ### ogr2ogr(input, options?) -> Promise\
58 |
59 | The **`input`** may be one of:
60 |
61 | - A path (`string`). This includes file paths and network paths including HTTP endpoints.
62 | - A `ReadableStream`.
63 | - A [GeoJSON][2] object.
64 |
65 | The following **`options`** are available (none required):
66 |
67 | - `format` - Output format (default: `GeoJSON`)
68 | - `inputFormat` - Optional input stream format (e.g. `CSV`)
69 | - `timeout` - Timeout, in milliseconds, before command forcibly terminated (default: `0`)
70 | - `maxBuffer` - Max output size in bytes for stdout/stderr (default: `1024 * 1024 * 50`)
71 | - `skipFailures` - the `-skipfailures` switch is not included when false (default: true).
72 | - `options` - Custom [ogr2ogr arguments][4] and [driver options][5] (e.g. `['--config', 'SHAPE_RESTORE_SHX', 'TRUE']`)
73 | - `env` - Custom environmental variables (e.g. `{ATTRIBUTES_SKIP: 'YES'}`)
74 | - `destination` - Select another output than the **output** object (e.g. useful for writing to databases).
75 | - `command` - Command to run (default: `ogr2ogr`)
76 |
77 | The **`output`** object has the following properties:
78 |
79 | - `cmd` - The `ogr2ogr` command executed (useful for debugging).
80 | - `text` - Text output from [drivers][3] that support `/vsistdout/` (see [formats](#formats) above)
81 | - `data` - Parsed [GeoJSON][2] output (used when `format` is `GeoJSON`)
82 | - `stream` - A `ReadableStream` of the output. Used for [drivers][3] that do not support `/vsistdout/`.
83 | - If a driver generates more than one file (like `ESRI Shapefile`), this will be a zip stream containing all the data.
84 | - `extname` - The file extension of the data returned.
85 | - `details` - Any text printed to `STDERR`. This includes any warnings reported by ogr2ogr when it ran.
86 |
87 | ### ogr2ogr(input, options?).exec((err, output))
88 |
89 | The callback API supports the same options as above but in a NodeJS style callback format.
90 |
91 | ### ogr2ogr.version() -> Promise\
92 |
93 | Retrieve the version of `ogr2ogr` that will be called by default by this library (same as calling `ogr2ogr --version` from command line).
94 |
95 | ```javascript
96 | const version = await ogr2ogr.version()
97 | console.log(version)
98 |
99 | // GDAL X.X.X, released XXXX/XX/XX
100 | ```
101 |
102 | ## Tips and tricks
103 |
104 | Running `ogr2ogr` in a [Docker container][6]:
105 |
106 | ```javascript
107 | ogr2ogr("/home/.../path/to/spatial/file", {
108 | command: "docker run -v /home/:/home --rm osgeo/gdal ogr2ogr",
109 | })
110 | ```
111 |
112 | Converting an isolated `.shp` file:
113 |
114 | ```javascript
115 | ogr2ogr("/path/to/file.shp", {
116 | options: ["--config", "SHAPE_RESTORE_SHX", "TRUE"],
117 | })
118 | ```
119 |
120 | Getting more debug information by using the [`CPL_DEBUG`][7] option. Debug info added to `details` on the **`output`** object.
121 |
122 | ```javascript
123 | ogr2ogr("/path/to/file.shp", {
124 | options: ["--config", "CPL_DEBUG", "TRUE"],
125 | })
126 | ```
127 |
128 | Parsing custom geometry fields in a CSV. Use [CSV driver options][8], like:
129 |
130 | ```javascript
131 | ogr2ogr("/path/to/file.csv", {
132 | options: ["-oo", "GEOM_POSSIBLE_NAMES=the_geom"],
133 | })
134 | ```
135 |
136 | Re-project geometry:
137 |
138 | ```javascript
139 | ogr2ogr("/path/to/file.shp", {
140 | options: ["-t_srs", "EPSG:4326"],
141 | })
142 | ```
143 |
144 | [1]: https://gdal.org/download.html
145 | [2]: https://geojson.org
146 | [3]: https://gdal.org/drivers/vector/index.html
147 | [4]: https://gdal.org/programs/ogr2ogr.html
148 | [5]: https://gdal.org/drivers/vector/csv.html#open-options
149 | [6]: https://github.com/OSGeo/gdal/tree/master/gdal/docker
150 | [7]: https://trac.osgeo.org/gdal/wiki/ConfigOptions#CPL_DEBUG
151 | [8]: https://gdal.org/drivers/vector/csv.html#open-options
152 | [9]: https://github.com/wavded/ogr2ogr/tree/v2
153 |
--------------------------------------------------------------------------------
/testdata/output/.gitignore:
--------------------------------------------------------------------------------
1 | *
2 | !.gitignore
3 |
--------------------------------------------------------------------------------
/testdata/sample.000:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wavded/ogr2ogr/a3ca7fbbe617ad0bda3227f5f981d1c546f13bc9/testdata/sample.000
--------------------------------------------------------------------------------
/testdata/sample.bad:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wavded/ogr2ogr/a3ca7fbbe617ad0bda3227f5f981d1c546f13bc9/testdata/sample.bad
--------------------------------------------------------------------------------
/testdata/sample.cryllic.kml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | Фонтаны Петергофа
5 |
6 |
13 |
20 |
27 |
34 |
41 |
48 |
55 |
62 |
69 |
76 |
83 |
90 |
97 |
104 |
111 |
118 |
125 |
132 |
139 |
146 |
153 |
160 |
167 |
174 |
181 |
188 |
195 |
202 |
209 |
216 |
223 |
230 |
237 |
243 |
244 | Музей "Императорские яхты"
245 |
246 | ]]>
247 | #style23
248 |
249 | 29.913197,59.890446,0.000000
250 |
251 |
252 |
253 | Фонтан "Китовый"
254 |
255 | Водоем, в котором находится фонтан, проектировал Микетти по замыслу Петра, желавшего повторить версальский фонтан «Нептун» и устроить на склоне искусственную гору «Парнас». Однако водоем, вырытый и окруженный дамбой в 1724—1727 годах под наблюдением В. Туволкова, простоял без декора шестнадцать лет. Только в 1739—1740 годах Песочный, или Стерляжий, пруд — так называли водоем — по проекту И. Бланка и И. Давыдова декорировали исполненными по модели К. Оснера большими скульптурами «с вододействием из рта и головы». В центре помещалась вырезанная из дерева семиметровая сказочная «Рыба-кит», по сторонам — свинцовые «морские быки», отлитые в Петербурге П. Луковниковым и прочеканенные А. Куломзиным. Лаковых дел мастер Г. Брумкорст расписал скульптуры, что придало оформлению фонтана еще более живописный характер.
В 1800 году, после того как убрали обветшавшие деревянные фигуры, фонтан стал менажерного типа. В 1963 году после разрушения всего парка в Великую Отечественную войну фонтан был воссоздан по чертежам XIX века. Сейчас на струе из фонтана держится и вращается металлический шар.
]]>
256 | #style10
257 |
258 | 29.897362,59.886051,0.000000
259 |
260 |
261 |
262 | Фонтаны Менажерные
263 |
264 | Два одинаковых мощных фонтана оформляют подход к Марлинскому каскаду. Художественный эффект достигается силой, высотой и толщиной водяного столба, который вздымается посреди бассейна диаметром 25 метров. Впечатление небывалой мощности создается за счет использования выводного отверстия особой конструкции. В трубу вложен конус, и вода, проходя между ним и стенкой трубы, образует столб диаметром 30 сантиметров, полый внутри.1722-25 гг. арх. Н.Микетти; восст. 1949 г., 1970-80 гг.
]]>
265 | #style5
266 |
267 | 29.897448,59.887558,0.000000
268 |
269 |
270 |
271 | Львиный Каскад
272 |
273 | ]]>
274 | #style29
275 |
276 | 29.902941,59.884113,0.000000
277 |
278 |
279 |
280 | Золотая Гора
281 |
282 | ]]>
283 | #style13
284 |
285 | 29.897060,59.887150,0.000000
286 |
287 |
288 |
289 | Фонтан Ева
290 |
291 |
292 | #style9
293 |
294 | 29.905815,59.884544,0.000000
295 |
296 |
297 |
298 | Оранжерейный фонтан
299 |
300 | ]]>
301 | #style24
302 |
303 | 29.913626,59.884270,0.000000
304 |
305 |
306 |
307 | Римские фонтаны
308 |
309 | ]]>
310 | #style8
311 |
312 | 29.917145,59.884174,0.000000
313 |
314 |
315 |
316 | Фонтан "Солнце"
317 |
318 | ]]>
319 | #style27
320 |
321 | 29.919527,59.885612,0.000000
322 |
323 |
324 |
325 | "Шахматная гора"
326 |
327 | ]]>
328 | #style18
329 |
330 | 29.916544,59.883198,0.000000
331 |
332 |
333 |
334 | Шутиха "Елочки"
335 |
336 | ]]>
337 | #style33
338 |
339 | 29.916050,59.884846,0.000000
340 |
341 |
342 |
343 | Шутиха "Дубок"
344 |
345 | ]]>
346 | #style25
347 |
348 | 29.915085,59.884449,0.000000
349 |
350 |
351 |
352 | Шутиха "Зонтик"
353 |
354 | ]]>
355 | #style26
356 |
357 | 29.915600,59.885406,0.000000
358 |
359 |
360 |
361 | Фонтан "Сноп"
362 |
363 | ]]>
364 | #style16
365 |
366 | 29.933109,59.889969,0.000000
367 |
368 |
369 |
370 | Фонтан "Пирамида"
371 |
372 | ]]>
373 | #style4
374 |
375 | 29.921978,59.884254,0.000000
376 |
377 |
378 |
379 | Большой каскад
380 |
381 | ]]>
382 | #style12
383 |
384 | 29.908884,59.885025,0.000000
385 |
386 |
387 |
388 | Фонтан "Самсон"
389 |
390 |
]]>
391 | #style19
392 |
393 | 29.909023,59.885265,0.000000
394 |
395 |
396 |
397 | Террасные фонтаны
398 |
399 |
400 | #style22
401 |
402 | 29.907745,59.885181,0.000000
403 |
404 |
405 |
406 | Фонтан "Ева"
407 |
408 | ]]>
409 | #style11
410 |
411 | 29.908443,59.886459,0.000000
412 |
413 |
414 |
415 | Фонтан "Адам"
416 |
417 |
418 | #style21
419 |
420 | 29.910805,59.886166,0.000000
421 |
422 |
423 |
424 | Террасные фонтаны
425 |
426 |
427 | #style2
428 |
429 | 29.910172,59.884846,0.000000
430 |
431 |
432 |
433 | Морской канал
434 |
435 |
436 | #style1
437 |
438 | 29.909891,59.886700,0.000000
439 |
440 |
441 |
442 | Аллея фонтанов
443 |
444 |
445 | #style34
446 |
447 | 29.909355,59.886574,0.000000
448 |
449 |
450 |
451 | Фонтан"Тритон"
452 |
453 | ]]>
454 | #style15
455 |
456 | 29.898043,59.887997,0.000000
457 |
458 |
459 |
460 | Львиный каскад
461 | Львиный каскад — один из каскадов Дворцово-
462 | Львиный каскад — один из каскадов Дворцово-паркового ансамбля Петергоф. ]]>
463 | #style32
464 |
465 | 29.902468,59.887474,0.000000
466 |
467 |
468 |
469 | Марли
470 | Марли Марли́ — дворец, расположенный
471 | Марли Марли́ — дворец, расположенный в западной части Нижнего парка дворцово-паркового ансамбля Петергоф. Дворец получил своё имя в память о посещении Петром I в 1717 резиденции французских королей в Марли-ле-Руа под Парижем (не сохранилась; разрушена во время Великой французской революции). Петергофский Марли и окружающие его пруды и сады не повторяют французский прототип; от него заимствованны общие композиционные решения и идея сочетания декоративного и хозяйственного предназначения парка. Сооружён одновременно с закладкой Марлинских прудов по проекту Иоганна Браунштейна в 1720—1723. Первоначально планировался одноэтажным. В процессе постройки по распоряжению Петра в проект внесли изменения, и дворец приобрёл второй этаж, что придало пропорциям дворца уравновешенность и законченность (в объёме дворец — чётко выявленный куб). В строительстве и декоре дворца Марли принимали участие скульптор Никола Пино, каменных дел мастера Я.
]]>
472 | #style3
473 |
474 | 29.896332,59.888744,0.000000
475 |
476 |
477 |
478 | Нептун
479 | В 1736 году в центральном бассейне Ве
480 | В 1736 году в центральном бассейне Верхнего парка поместили скульптурно-фонтанную композицию «Телега Нептунова». Скульптуры были отлиты из свинца и позолочены. Центром композиции являлась фигура Нептуна «с коляскою», а также дельфины и «верховые» на лошадях. Центральная струя фонтана поднимала золоченый медный шар.После неоднократных реставраций «Телегу Нептунову» в 1797 году всё же пришлось снять. Вместо неё установили новую группу — «Нептун», сохраняющуюся и поныне.
Первоначально фигуры фонтана были созданы в Нюрнберге (Германия ). В 1660 году Георг Швайгер (нем.Georg Schweigger) и золотокузнец Христоф Риттер (нем. Christoph Ritter)представили модель в виде её составных частей.Затем Швайгер и его ученик Иеремия Айслер (нем.Jeremias Eissler) работали над моделью до 1670 года, но полный комплект фигур был выполнен только в 1688 -1694 годах.Отливка была произведена Херольдтом (нем. W.H.Heroldt). Фонтан никогда не был выставлен в Нюрнберге, однако стал известен как своеобразная достопримечательность, даже находясь на складе.В 1796 году основная часть фигур была куплена Россией и направлена в Петергоф . Установленная в настоящее время в городском парке Нюрнберга копия находится там с 1902 года.[1]
]]>
481 | #style7
482 |
483 | 29.907703,59.882282,0.000000
484 |
485 |
486 |
487 | Маршрутка
488 | Маршрутное такси № 224, № 300, №424, № 424-А;муниц
489 | Маршрутное такси № 224, № 300, №424, № 424-А;муниципальный автобус №200, №210 ]]>
490 | #style17
491 |
492 | 29.899271,59.885933,0.000000
493 |
494 |
495 |
496 | Вход в Нижний парк
497 |
498 | ]]>
499 | #style28
500 |
501 | 29.906286,59.884998,0.000000
502 |
503 |
504 |
505 | Вход в Нижний парк
506 |
507 | ]]>
508 | #style6
509 |
510 | 29.901308,59.886051,0.000000
511 |
512 |
513 |
514 | Центральный вход в парк
515 |
516 | ]]>
517 | #style14
518 |
519 | 29.909941,59.882496,0.000000
520 |
521 |
522 |
523 | Вход в парк
524 |
525 | ]]>
526 | #style30
527 |
528 | 29.924656,59.880947,0.000000
529 |
530 |
531 |
532 | Вход в Верхний сад
533 |
534 | ]]>
535 | #style31
536 |
537 | 29.906460,59.880562,0.000000
538 |
539 |
540 |
541 | Line 2
542 |
543 | #style20
544 |
545 | 1
546 |
547 | 29.925707,59.882530,0.000000
548 | 29.926672,59.884190,0.000000
549 | 29.921694,59.885029,0.000000
550 | 29.921457,59.885601,0.000000
551 | 29.920256,59.885902,0.000000
552 | 29.919613,59.886311,0.000000
553 | 29.917358,59.886654,0.000000
554 | 29.916780,59.887074,0.000000
555 | 29.914848,59.887203,0.000000
556 | 29.914034,59.886192,0.000000
557 |
558 |
559 |
560 |
561 |
562 |
--------------------------------------------------------------------------------
/testdata/sample.csv:
--------------------------------------------------------------------------------
1 | id,name,desc,x,y
2 | 1,My Sample Point,A Longer Description of My Point,-105,45
3 |
--------------------------------------------------------------------------------
/testdata/sample.dbf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wavded/ogr2ogr/a3ca7fbbe617ad0bda3227f5f981d1c546f13bc9/testdata/sample.dbf
--------------------------------------------------------------------------------
/testdata/sample.dgn:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wavded/ogr2ogr/a3ca7fbbe617ad0bda3227f5f981d1c546f13bc9/testdata/sample.dgn
--------------------------------------------------------------------------------
/testdata/sample.empty.zip:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wavded/ogr2ogr/a3ca7fbbe617ad0bda3227f5f981d1c546f13bc9/testdata/sample.empty.zip
--------------------------------------------------------------------------------
/testdata/sample.gdb.zip:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wavded/ogr2ogr/a3ca7fbbe617ad0bda3227f5f981d1c546f13bc9/testdata/sample.gdb.zip
--------------------------------------------------------------------------------
/testdata/sample.geojson:
--------------------------------------------------------------------------------
1 | {
2 | "type": "FeatureCollection",
3 | "features": [
4 | {
5 | "type": "Feature",
6 | "properties": {
7 | "ID": 1,
8 | "FIPSSTCO": "08007",
9 | "STATE": "Colorado",
10 | "COUNTY": "Archuleta"
11 | },
12 | "geometry": {
13 | "type": "Polygon",
14 | "coordinates": [
15 | [
16 | [-107.48208, 37.123682],
17 | [-107.4821, 37.125004],
18 | [-107.482099, 37.125318],
19 | [-107.482097, 37.140477],
20 | [-107.482095, 37.15699],
21 | [-107.482095, 37.158352],
22 | [-107.482089, 37.166724],
23 | [-107.482088, 37.168814],
24 | [-107.482078, 37.183799],
25 | [-107.482077, 37.18564],
26 | [-107.482071, 37.195358],
27 | [-107.482068, 37.200515],
28 | [-107.482053, 37.213459],
29 | [-107.48206, 37.214701],
30 | [-107.482062, 37.214989],
31 | [-107.482259, 37.250003],
32 | [-107.482258, 37.250374],
33 | [-107.482233, 37.260459],
34 | [-107.482208, 37.270998],
35 | [-107.482155, 37.284768],
36 | [-107.482149, 37.286464],
37 | [-107.482138, 37.28938],
38 | [-107.482103, 37.298854],
39 | [-107.482087, 37.303386],
40 | [-107.482078, 37.306332],
41 | [-107.482084, 37.307939],
42 | [-107.482125, 37.318244],
43 | [-107.48213, 37.319948],
44 | [-107.482135, 37.321757],
45 | [-107.482317, 37.323513],
46 | [-107.482413, 37.324432],
47 | [-107.482304, 37.328714],
48 | [-107.482088, 37.33716],
49 | [-107.482055, 37.355092],
50 | [-107.482042, 37.362066],
51 | [-107.482025, 37.371271],
52 | [-107.482235, 37.375002],
53 | [-107.482229, 37.377417],
54 | [-107.482145, 37.416199],
55 | [-107.482131, 37.422673],
56 | [-107.462783, 37.422846],
57 | [-107.39667, 37.423435],
58 | [-107.377291, 37.423608],
59 | [-107.375607, 37.423623],
60 | [-107.35603, 37.42308],
61 | [-107.342063, 37.423065],
62 | [-107.289936, 37.423009],
63 | [-107.250604, 37.422967],
64 | [-107.241875, 37.42297],
65 | [-107.217866, 37.422982],
66 | [-107.21711, 37.422983],
67 | [-107.211573, 37.422961],
68 | [-107.20277, 37.422954],
69 | [-107.197216, 37.422953],
70 | [-107.194077, 37.422953],
71 | [-107.192053, 37.422953],
72 | [-107.166667, 37.422948],
73 | [-107.165512, 37.422948],
74 | [-107.12868, 37.422942],
75 | [-107.128682, 37.422144],
76 | [-107.128684, 37.420639],
77 | [-107.128703, 37.410601],
78 | [-107.128714, 37.403935],
79 | [-107.128737, 37.392409],
80 | [-107.1256, 37.392486],
81 | [-107.113587, 37.392491],
82 | [-107.11323, 37.392489],
83 | [-107.110625, 37.392448],
84 | [-107.091164, 37.392426],
85 | [-107.089199, 37.392455],
86 | [-107.070893, 37.392374],
87 | [-107.062557, 37.392338],
88 | [-107.055982, 37.392325],
89 | [-107.048277, 37.392309],
90 | [-107.047394, 37.392307],
91 | [-107.04526, 37.392304],
92 | [-107.022499, 37.392705],
93 | [-107.000597, 37.393136],
94 | [-106.975481, 37.393314],
95 | [-106.960899, 37.393439],
96 | [-106.939186, 37.393587],
97 | [-106.90709, 37.393806],
98 | [-106.898213, 37.393866],
99 | [-106.897719, 37.393869],
100 | [-106.875595, 37.394023],
101 | [-106.871183, 37.393665],
102 | [-106.840406, 37.394223],
103 | [-106.837566, 37.394275],
104 | [-106.837018, 37.394285],
105 | [-106.801217, 37.394974],
106 | [-106.790634, 37.395204],
107 | [-106.773125, 37.395538],
108 | [-106.753411, 37.395914],
109 | [-106.751332, 37.395954],
110 | [-106.750594, 37.395969],
111 | [-106.729516, 37.396045],
112 | [-106.710767, 37.396238],
113 | [-106.710775, 37.404228],
114 | [-106.709237, 37.40421],
115 | [-106.7064, 37.404177],
116 | [-106.705869, 37.404171],
117 | [-106.678373, 37.403596],
118 | [-106.678376, 37.396572],
119 | [-106.678246, 37.396573],
120 | [-106.678299, 37.376494],
121 | [-106.678303, 37.375007],
122 | [-106.678102, 37.363461],
123 | [-106.678231, 37.338874],
124 | [-106.678287, 37.328438],
125 | [-106.678358, 37.315069],
126 | [-106.678486, 37.291075],
127 | [-106.678568, 37.275648],
128 | [-106.678705, 37.250006],
129 | [-106.678354, 37.228566],
130 | [-106.673858, 37.226702],
131 | [-106.670662, 37.225377],
132 | [-106.648479, 37.216181],
133 | [-106.62559, 37.206692],
134 | [-106.614397, 37.202139],
135 | [-106.603406, 37.197405],
136 | [-106.597384, 37.194977],
137 | [-106.595224, 37.180546],
138 | [-106.592467, 37.162124],
139 | [-106.592328, 37.161201],
140 | [-106.591257, 37.154054],
141 | [-106.589188, 37.140213],
142 | [-106.577639, 37.125763],
143 | [-106.576987, 37.125008],
144 | [-106.574126, 37.121423],
145 | [-106.55279, 37.094736],
146 | [-106.552277, 37.094094],
147 | [-106.551071, 37.092586],
148 | [-106.535273, 37.072828],
149 | [-106.500589, 37.029445],
150 | [-106.489062, 37.01508],
151 | [-106.481213, 37.00208],
152 | [-106.479963, 37.00001],
153 | [-106.479744, 36.999361],
154 | [-106.478712, 36.997716],
155 | [-106.476229, 36.993758],
156 | [-106.483557, 36.993741],
157 | [-106.498517, 36.993705],
158 | [-106.498594, 36.993705],
159 | [-106.499631, 36.993702],
160 | [-106.500589, 36.993768],
161 | [-106.509269, 36.993693],
162 | [-106.534695, 36.993474],
163 | [-106.537664, 36.993451],
164 | [-106.540391, 36.993427],
165 | [-106.545131, 36.993386],
166 | [-106.545312, 36.993337],
167 | [-106.547995, 36.993361],
168 | [-106.562201, 36.993202],
169 | [-106.563108, 36.993186],
170 | [-106.585674, 36.992975],
171 | [-106.591178, 36.992923],
172 | [-106.616282, 36.992907],
173 | [-106.617159, 36.992967],
174 | [-106.617125, 36.993004],
175 | [-106.62559, 36.993122],
176 | [-106.62559, 36.993158],
177 | [-106.625641, 36.993158],
178 | [-106.628652, 36.993175],
179 | [-106.628733, 36.993161],
180 | [-106.661299, 36.993244],
181 | [-106.661344, 36.993243],
182 | [-106.662177, 36.993235],
183 | [-106.670401, 36.993129],
184 | [-106.675626, 36.993123],
185 | [-106.722866, 36.992705],
186 | [-106.73744, 36.992577],
187 | [-106.750591, 36.992461],
188 | [-106.775599, 36.992528],
189 | [-106.782153, 36.992514],
190 | [-106.787491, 36.992504],
191 | [-106.795652, 36.992489],
192 | [-106.797571, 36.992486],
193 | [-106.801894, 36.992491],
194 | [-106.841485, 36.992437],
195 | [-106.843918, 36.992434],
196 | [-106.849675, 36.992427],
197 | [-106.869796, 36.992426],
198 | [-106.875592, 36.99831],
199 | [-106.87703, 37.00001],
200 | [-106.877292, 37.000139],
201 | [-106.878239, 37.000138],
202 | [-106.878654, 37.000137],
203 | [-106.891455, 37.000136],
204 | [-106.895767, 37.000132],
205 | [-106.905699, 37.000122],
206 | [-106.90638, 37.000122],
207 | [-106.906991, 37.000122],
208 | [-106.914258, 37.000122],
209 | [-106.914581, 37.000122],
210 | [-106.914737, 37.000122],
211 | [-106.918626, 37.000122],
212 | [-106.918888, 37.000122],
213 | [-106.9217, 37.000122],
214 | [-106.923315, 37.00012],
215 | [-106.936998, 37.000108],
216 | [-106.937825, 37.000107],
217 | [-106.939742, 37.000107],
218 | [-106.944446, 37.000106],
219 | [-106.94589, 37.000106],
220 | [-106.952808, 37.000105],
221 | [-106.956018, 37.000106],
222 | [-106.969461, 37.000111],
223 | [-106.970328, 37.000112],
224 | [-106.973423, 37.000116],
225 | [-106.975003, 37.000117],
226 | [-106.979634, 37.000123],
227 | [-106.984759, 37.00013],
228 | [-106.985513, 37.00013],
229 | [-107.000327, 37.000146],
230 | [-107.000592, 37.000152],
231 | [-107.000592, 37.000009],
232 | [-107.0149, 37.000009],
233 | [-107.019123, 37.000009],
234 | [-107.027309, 37.000009],
235 | [-107.027994, 37.000009],
236 | [-107.028056, 37.000009],
237 | [-107.059216, 37.000008],
238 | [-107.059239, 37.000008],
239 | [-107.0599, 37.000008],
240 | [-107.10724, 37.000008],
241 | [-107.107292, 37.000008],
242 | [-107.108782, 37.000008],
243 | [-107.125595, 37.000007],
244 | [-107.136819, 37.000007],
245 | [-107.143986, 37.000007],
246 | [-107.14547, 37.000007],
247 | [-107.146097, 37.000007],
248 | [-107.150892, 37.000007],
249 | [-107.156741, 37.000007],
250 | [-107.15774, 37.000007],
251 | [-107.185874, 37.000006],
252 | [-107.186245, 37.000006],
253 | [-107.197245, 37.000006],
254 | [-107.212924, 37.000006],
255 | [-107.237035, 37.000006],
256 | [-107.239717, 37.000006],
257 | [-107.242166, 37.000006],
258 | [-107.242542, 37.000006],
259 | [-107.247576, 37.000005],
260 | [-107.250598, 37.000005],
261 | [-107.25113, 37.000005],
262 | [-107.255268, 37.000005],
263 | [-107.264284, 37.000005],
264 | [-107.277153, 37.000005],
265 | [-107.3089, 37.000005],
266 | [-107.310022, 37.000005],
267 | [-107.321518, 37.000005],
268 | [-107.333768, 37.000005],
269 | [-107.3468, 37.000005],
270 | [-107.350766, 37.000005],
271 | [-107.375602, 37.000005],
272 | [-107.398365, 37.000005],
273 | [-107.400846, 37.000005],
274 | [-107.420913, 37.000005],
275 | [-107.422415, 37.000005],
276 | [-107.423212, 37.000005],
277 | [-107.423674, 37.000005],
278 | [-107.425325, 37.000005],
279 | [-107.428578, 37.000005],
280 | [-107.430445, 37.000005],
281 | [-107.433644, 37.000005],
282 | [-107.436234, 37.000005],
283 | [-107.440533, 37.000005],
284 | [-107.442102, 37.000005],
285 | [-107.442182, 37.000005],
286 | [-107.445526, 37.000005],
287 | [-107.446866, 37.000005],
288 | [-107.454798, 37.000005],
289 | [-107.45882, 37.000005],
290 | [-107.461074, 37.000005],
291 | [-107.468778, 37.000005],
292 | [-107.469766, 37.000005],
293 | [-107.470085, 37.000005],
294 | [-107.472544, 37.000005],
295 | [-107.478602, 37.000005],
296 | [-107.481737, 37.000005],
297 | [-107.481702, 37.009952],
298 | [-107.481702, 37.0101],
299 | [-107.481696, 37.011886],
300 | [-107.481653, 37.024769],
301 | [-107.481616, 37.035817],
302 | [-107.481615, 37.035893],
303 | [-107.481558, 37.053706],
304 | [-107.481551, 37.055671],
305 | [-107.481462, 37.082556],
306 | [-107.481435, 37.090605],
307 | [-107.481425, 37.093796],
308 | [-107.481424, 37.093861],
309 | [-107.48211, 37.123665],
310 | [-107.48208, 37.123682]
311 | ]
312 | ]
313 | }
314 | }
315 | ]
316 | }
317 |
--------------------------------------------------------------------------------
/testdata/sample.geom.csv:
--------------------------------------------------------------------------------
1 | FID,objectid,state_name,state_fips,sub_region,state_abbr,pop2000,pop2007,pop00_sqmi,pop07_sqmi,white,black,ameri_es,asian,hawn_pi,other,mult_race,hispanic,males,females,age_under5,age_5_17,age_18_21,age_22_29,age_30_39,age_40_49,age_50_64,age_65_up,med_age,med_age_m,med_age_f,households,ave_hh_sz,hsehld_1_m,hsehld_1_f,marhh_chd,marhh_no_c,mhh_child,fhh_child,families,ave_fam_sz,hse_units,vacant,owner_occ,renter_occ,no_farms97,avg_size97,crop_acr97,avg_sale97,sqmi,the_geom
2 | states.1,0,Hawaii,15,Pacific,HI,1211537,1299555,189.9,203.7,294102,22003,3535,503868,113539,15147,259343,87699,608671,602866,78163,217604,65456,133437,183094,185646,187536,160601,36.2,35.1,37.4,403240,2.92,43253,44900,96758,119319,8945,23619,287068,3.42,460542,57302,227888,175352,5473,263,292107,90.8,6381,"MULTIPOLYGON (((-155.0961850169921 19.877114634473514, -155.07210598142265 19.724585514573334, -154.97576305645663 19.740643419893104, -154.9757624866121 19.65233535324728, -154.79109600559244 19.539960424981246, -154.81518747413128 19.459676441415525, -154.92758182891205 19.419518623498448, -155.01588171051964 19.33121154112945, -155.15237214439884 19.26699193838823, -155.30489903672535 19.23487840712687, -155.52167873818223 19.122484570386348, -155.53772980536854 19.04221063680444, -155.6661923226688 18.921786345087014, -155.77858584858492 19.01009270219953, -155.85886149170028 19.010100887237797, -155.90703101153184 19.130513315830115, -155.87492706401773 19.371358583806227, -155.9471783132288 19.483750192972877, -155.9712585920951 19.628252691395005, -156.04352465726146 19.780783261808324, -155.97930096200113 19.82092253387907, -155.8829587104876 19.933311967276097, -155.82676174031337 20.005562905662885, -155.834786652258 20.061757441047348, -155.8909788564606 20.17414905021394, -155.8588579690256 20.270479542210524, -155.73844206956264 20.20625677942303, -155.56182593627105 20.134006980725076, -155.20055021189688 19.997528824403275, -155.0961850169921 19.877114634473514)), ((-156.886487187697 20.73604938634736, -156.96676557642638 20.728020744511866, -156.9908634686662 20.79223713540256, -156.98282633096815 20.832377650770354, -157.05509819818698 20.88053841571923, -157.03905065367525 20.928706951274137, -156.91058585699736 20.928718607182873, -156.8062053280968 20.84041862196733, -156.81422568128605 20.792252728418532, -156.886487187697 20.73604938634736)), ((-156.5251916223757 20.984870145214643, -156.4770220507401 20.89656513500711, -156.35660350927122 20.944726366192413, -156.26026338172323 20.92867125829099, -156.0113924765458 20.800225318283253, -155.9873170672592 20.752061652308328, -156.04351155083947 20.655732610824714, -156.13180889404913 20.623622913062206, -156.19604543671127 20.6316494309321, -156.27631740173987 20.58348384820755, -156.3967349589321 20.567426978968683, -156.43687925599463 20.62362120352884, -156.46097191602644 20.727981062617687, -156.49307472385175 20.79220429164161, -156.5251935909292 20.776149649976446, -156.63758659880497 20.808260901860308, -156.69378263650654 20.91262402460353, -156.65363600826214 21.01698507518512, -156.59743960793227 21.04106468059888, -156.5251916223757 20.984870145214643)), ((-157.16747146872362 21.193640475938594, -157.00690376061243 21.185610642610186, -156.99254684092762 21.195420203713354, -156.95873346372025 21.20969351167855, -156.9433465243194 21.172778730238235, -156.91424275594503 21.16737240887892, -156.91021442203456 21.158045195186844, -156.71787265453224 21.137419779514403, -156.76604818363245 21.065176818949567, -156.88648407945462 21.049134092213535, -157.07113191102013 21.105330958779803, -157.2878975217783 21.08125057630525, -157.3039487961808 21.137448427148172, -157.24774752627135 21.16153046735195, -157.2316941797072 21.233776328942895, -157.16747146872362 21.193640475938594)), ((-157.9141797627085 21.63520847252488, -157.84995902027842 21.50675880262645, -157.80981513764817 21.434505170429475, -157.76164292400654 21.458587573261582, -157.71347278252648 21.386335184361656, -157.6733298841729 21.298027169519912, -157.68137111439006 21.27394279813427, -157.7215016315782 21.28197118094971, -157.82587169606276 21.24986365895677, -157.8981345493786 21.330144275259954, -157.946306400392 21.306060991759352, -158.0988330336982 21.290007956019338, -158.1309511237151 21.3542322729283, -158.2353187016057 21.47465257573441, -158.2433427846858 21.538878964804837, -158.2674318184349 21.587042527172002, -158.11489404726015 21.579016630950434, -158.04262627256048 21.675350593817825, -157.9864281108934 21.699432841237524, -157.9141797627085 21.63520847252488)), ((-160.17013766864758 21.867596368435045, -160.2022596957715 21.79530864918013, -160.24240616860374 21.803280461984457, -160.2263364519632 21.891591947696952, -160.12196245037165 21.963978716275108, -160.0738035503682 22.004177303971005, -160.04970969884346 21.988164105537408, -160.0898583992494 21.91586985897368, -160.17013766864758 21.867596368435045)), ((-159.33517471798157 21.948343324701113, -159.43954519689842 21.86807167049676, -159.57602128105862 21.884136154929422, -159.64024699667652 21.948365755850148, -159.73659266725667 21.964420293907153, -159.8008142385514 22.036666621734582, -159.71250591288538 22.149059266981908, -159.57601257798 22.213179613183627, -159.39136687038012 22.229119871529633, -159.34319584823135 22.1970166492722, -159.29502560314324 22.124812489932822, -159.32713032771798 22.0446395742278, -159.33517471798157 21.948343324701113)))"
3 | states.2,1,Washington,53,Pacific,WA,5894121,6516384,87.6,96.8,4821823,190267,93301,322335,23953,228923,213519,441509,2934300,2959821,394306,1119537,330755,632258,921428,945360,888329,662148,35.3,34.4,36.3,2271398,2.53,273745,320580,541636,640359,53925,146920,1499127,3.07,2451075,179677,1467009,804389,29011,523,7913709,164.34,67290,"MULTIPOLYGON (((-122.52575000195117 48.321043872489895, -122.5286484379576 48.28351013638655, -122.62350976739583 48.29635054462085, -122.73203415321473 48.2254144963631, -122.61092532292037 48.20632134056888, -122.54620275476026 48.07685817644307, -122.49621273737483 48.094071001017824, -122.37999394938288 48.0321462654195, -122.35539992985741 47.963886051210466, -122.3869609192343 47.90454908279406, -122.44278795676286 47.91805626081987, -122.47161654207974 47.98750910762476, -122.54496127095524 47.967531035229115, -122.60862838361584 48.03143074802682, -122.69555426668558 48.18118524357482, -122.76877824034506 48.218818391629895, -122.7331875183487 48.276647189046344, -122.66561256797331 48.396777751859986, -122.60438407866496 48.40478929836263, -122.52575000195117 48.321043872489895)), ((-123.01888291052552 48.489605151102126, -122.96797834462802 48.443794528206126, -123.0952328435327 48.47942280813106, -123.15971991052947 48.52184223499762, -123.1698993524742 48.56256471694434, -123.14105382723648 48.62364711886141, -123.10372140163031 48.60837710117755, -123.0120949236304 48.55747776748797, -123.00869875441316 48.53371934711862, -122.96798000235725 48.526933328777034, -123.02227110192075 48.51335968616843, -123.01888291052552 48.489605151102126)), ((-117.02911171886717 48.838075279556335, -117.0388684398502 48.046185988970706, -117.03747185475106 47.97109240752803, -117.04179474642973 47.3614417498502, -117.04239194339641 47.25850126963786, -117.0409684201968 47.11931909786966, -117.04192617327783 46.53660177472585, -117.03855854808631 46.42798056715742, -117.0444705286746 46.38857395961628, -117.0641846594894 46.348697955673856, -117.02797358412079 46.33542695226373, -117.00164241974107 46.30244875978002, -116.97272483508436 46.24930936762132, -116.96749050313593 46.197553920376095, -116.92942629366871 46.16548328285921, -116.96163768276068 46.09727419923723, -116.9872117829081 46.0785089112087, -116.95772336954099 46.06568767046889, -116.9191324166008 45.99517548286167, -117.48166300067805 45.99983473816843, -117.60282617340977 46.00026818256629, -117.98267742761595 45.999880532939244, -117.99252775849823 46.00163891744978, -118.98213281222485 45.999058351029475, -119.03222167171748 45.9662745791058, -119.14025060370318 45.92570864896618, -119.17874266273213 45.922351591798815, -119.30276350169117 45.932662719611756, -119.37944140607192 45.917610071677416, -119.43886110553927 45.91426850391764, -119.51221997691755 45.89920057379163, -119.58929428580802 45.91331494696391, -119.62211670354503 45.899410328347415, -119.67844567041169 45.85253901774399, -119.83355587477263 45.84160934970009, -119.8697356086974 45.83169851169987, -119.99432017921362 45.81114033767062, -120.06864788973724 45.78020244728009, -120.15590785705723 45.76126164716578, -120.20744536470863 45.71978406954031, -120.28363486060556 45.716582890727636, -120.44338375406949 45.68927972715579, -120.49915650096483 45.695630695174316, -120.57008244743508 45.740917941859834, -120.62375718253725 45.743610560417665, -120.65840336148267 45.732612511041566, -120.6969938999905 45.710509799576585, -120.86141966213455 45.665186238259366, -120.90793725475669 45.635477087880304, -120.94857280952522 45.65031599234794, -120.96847851167786 45.64515454868297, -121.0334825829882 45.65284439210063, -121.07352990288899 45.646610760231454, -121.1252046912449 45.607059101379946, -121.17431600851336 45.60051614759141, -121.19205464408833 45.61324191348649, -121.2033081391827 45.65728695111039, -121.21427173887241 45.66564496302868, -121.27639089503077 45.67833995732428, -121.31997772592587 45.696642842496885, -121.36781424939204 45.6996865888338, -121.42202904160536 45.690603164951256, -121.4425521442999 45.6949670854292, -121.52905463295525 45.71956768406773, -121.70641684802291 45.68879318361758, -121.75869411735732 45.689716072579984, -121.81104101132081 45.70068309133637, -121.88828347612332 45.67685639324293, -121.92682070827459 45.64202838211929, -121.97265946076391 45.63577610079585, -122.0000115791529 45.61782429159865, -122.08203752534865 45.5905040326939, -122.24492227273174 45.548112839028875, -122.30315032387995 45.54309282039162, -122.35645750932241 45.5661712609392, -122.43715421567038 45.56477892377154, -122.56542982399628 45.594818791138266, -122.65120918006517 45.6068304383499, -122.69632309043482 45.63104556313084, -122.76054129446698 45.6493974031207, -122.77255102492893 45.727685532459134, -122.76428853965945 45.760568042881914, -122.78800955751228 45.80034359879187, -122.78451589309282 45.85044950181339, -122.78407364200825 45.86788643066279, -122.80622292530472 45.90407243287632, -122.80774176793682 45.943890105470246, -122.87541773618909 46.027183333882704, -122.89975729427283 46.07932969440958, -122.97416923816468 46.1104834522323, -123.05059620377835 46.15573624923172, -123.11855414141729 46.17931050624077, -123.17619639248761 46.18358646345985, -123.2124370479628 46.17000603452203, -123.24879939112651 46.144020351281256, -123.30471708572418 46.1447375782073, -123.47077301738113 46.27502380491171, -123.62007645515774 46.258665487967335, -123.72545892598498 46.28542382845632, -123.88577092935759 46.240438392104636, -123.99332948066524 46.31027474421336, -124.07910754163322 46.26725926006907, -124.065510639011 46.6397453267727, -124.02304293077975 46.58354115583711, -124.01300206464043 46.383680032010886, -123.84145133032473 46.40434305741587, -123.94069346835772 46.48111519334441, -123.89356686744804 46.51107989305024, -123.95771187237244 46.6172253855741, -123.92647035850678 46.673060659945065, -123.8409665999277 46.71828807296515, -123.89554200005955 46.74498611355216, -124.043158387488 46.715855510685344, -124.0910493051955 46.72902275060454, -124.10206719551854 46.78946894711328, -124.1388270310768 46.899984939228204, -124.10576061631406 46.908148685998526, -124.10473805637963 46.8741453433787, -124.02880861676067 46.82376726193394, -124.04692904810628 46.887253215868554, -123.81265574418092 46.96396494828713, -123.99586477035518 46.97638569199802, -124.03439474994099 47.031033617785056, -124.11236153882282 47.04267502152669, -124.16203638043226 46.92961265365744, -124.19273369286361 47.166982440431866, -124.23142535285643 47.27507053263065, -124.31942694680504 47.349238220476536, -124.34908009701758 47.52691012009177, -124.37360573521096 47.63876353709293, -124.48403495555982 47.80825506084119, -124.60668516324353 47.873735107665766, -124.73276977152562 48.14998905824365, -124.70520960811427 48.23199588874883, -124.7171757195751 48.37755762436524, -124.56354721435008 48.35727882952068, -123.99121577224832 48.15916163687808, -123.39685720077495 48.11103055564371, -123.12322204799852 48.14873348373993, -122.92159456183975 48.09417906424409, -122.92484438464567 48.06679638147182, -122.84111113272223 48.13313642715519, -122.76888257368046 48.14399398397609, -122.8029314520511 48.08532150597341, -122.66156071502894 47.91715725351963, -122.65358553496213 47.86443141300771, -122.74586997606684 47.808988087999126, -122.78980130382422 47.80254869048542, -122.80951745499658 47.857075239408005, -122.85880386991835 47.82732837568818, -122.8993636353772 47.67251744326296, -122.98274461983237 47.60547415774437, -123.11391534870609 47.4562737582022, -123.15406021561319 47.34854710278648, -123.01047112601435 47.35302701250862, -122.8332476421644 47.43846446191736, -123.03620587048812 47.35605179856725, -123.11268531359383 47.37156907693134, -123.02633642391532 47.515936055986174, -122.91696965261121 47.61460674366032, -122.7529427297668 47.660688871526816, -122.72306226342909 47.75689948897627, -122.61116180836041 47.850008857604905, -122.61321770346933 47.936189125135, -122.53188826258378 47.909461038205166, -122.47358799660446 47.75498040833537, -122.62150971704136 47.69696858724768, -122.58646034725712 47.57119133233169, -122.55526219337253 47.58350561874147, -122.54270188957929 47.522734092864994, -122.50446123555383 47.50721660728482, -122.55844658767649 47.39836383565995, -122.5441251019547 47.373927196806335, -122.58825406212253 47.33392971239152, -122.55315646277757 47.28333224083974, -122.58053075329536 47.25138784976696, -122.611546297941 47.29339854276242, -122.60691444697113 47.27057155902207, -122.69974479904346 47.292085258558586, -122.62875409752388 47.39855359385649, -122.63743666174923 47.398580169328625, -122.74154931196182 47.341450312012284, -122.769708278265 47.26615635254501, -122.71980166538316 47.22313097382937, -122.76123857683768 47.162496107008906, -122.82510845050865 47.23482630557595, -122.77333492365369 47.33736079753123, -122.80218417878234 47.36074078939254, -122.88037331060139 47.29923302450766, -123.11543636710798 47.20798088249677, -123.08119985450651 47.09005841505996, -123.03134815390632 47.10077408061676, -122.92314982271165 47.04796379952052, -122.79004882352467 47.12585977228065, -122.72818671900995 47.0824411491015, -122.70007898690181 47.098325769909195, -122.59180678314692 47.18006042199124, -122.53076359688771 47.28745615320281, -122.54658812500963 47.31627588002897, -122.42409395109269 47.25947264718127, -122.39284357873623 47.27772238140926, -122.44160449348198 47.30112501163586, -122.42083713474148 47.318844376108245, -122.32537632895884 47.34432341584335, -122.31973865075935 47.39011487124475, -122.39263372057258 47.510242429424125, -122.38222043519369 47.595409047314604, -122.41481522598156 47.66417989394034, -122.3944922940953 47.77417608432364, -122.30292228249846 47.95021480979153, -122.2301208743886 47.96911328600555, -122.2169919694586 48.00743957210818, -122.36833301551832 48.12814174069308, -122.40201558752614 48.22521655312829, -122.46285513210643 48.228363544915794, -122.45441905150068 48.12849219501993, -122.3613330982979 48.06009739391641, -122.51451116739997 48.133973684040484, -122.54207407642548 48.210460483319764, -122.50913074806033 48.25379285277313, -122.40440478982487 48.24659462968975, -122.37832000545666 48.28972107808636, -122.56436628706672 48.41424648838961, -122.66703194684982 48.41289507641284, -122.69941382303551 48.49432822898541, -122.60817831012127 48.51882407985596, -122.52322787048735 48.45840311191455, -122.47383323692719 48.462195478425315, -122.50529978754014 48.5594447668654, -122.42954503114214 48.59939733717795, -122.48779820724963 48.63857004948102, -122.5265583003785 48.71172470933578, -122.51685348704297 48.7579213241296, -122.6974040335216 48.8030150309238, -122.75424197507573 48.90998861101815, -122.82242127137522 48.950725183663565, -122.74394001657771 48.955808092404766, -122.7651189584115 48.99974625829549, -120.85705947154747 48.999830647075726, -118.84360280150918 48.99989845856334, -118.20035473766416 48.99990881937123, -117.43858043030275 48.99991850672649, -117.03204952594353 48.999931302324285, -117.02911171886717 48.838075279556335)))"
4 | states.3,2,Montana,30,Mountain,MT,902195,959171,6.1,6.5,817229,2692,56068,4691,470,5315,15730,18081,449480,452715,54869,175193,52410,84451,118755,148759,146809,120949,37.5,36.6,38.5,358667,2.45,45992,52430,82384,109683,8222,21201,237407,2.99,412633,53966,247723,110944,24279,2414,17629001,77.05,147245,"MULTIPOLYGON (((-104.06299108823987 49.00002672536499, -104.05231764297508 48.64582473896752, -104.0521114628981 48.391019370248614, -104.04842519106006 48.00008127454299, -104.04730767432136 47.400017265186534, -104.04592652682607 47.333832009973094, -104.0474374952442 46.64294748986242, -104.04670555597102 46.542539501921794, -104.04783643815188 46.28088149486666, -104.0489063469783 45.942993688371814, -104.04951685758306 45.883052736659636, -104.0438514124184 45.21287548260375, -104.0430722796653 44.99780552166425, -104.05984238691906 44.997336280675086, -105.04179598402118 45.00107585886974, -105.08500309130733 44.9998170725155, -106.02115067607309 44.99721371231766, -106.25923173230899 44.99616250474958, -107.8943743812074 44.99977371253448, -108.25923851958902 45.00011515295847, -108.62525623032093 44.99759317690666, -109.79938535576287 44.99952277376747, -109.99552922893537 45.00279290375681, -110.3927599095071 44.998625268784224, -110.42964951418418 44.99228512781008, -111.05342863573298 44.99569549133406, -111.05161580517694 44.66449045773038, -111.051560633875 44.47332324321417, -111.09463056406469 44.486124435790714, -111.12891862168544 44.50075695296516, -111.13435892649466 44.52790242504085, -111.17024187507752 44.545186117541505, -111.17876452023307 44.56485087910676, -111.21950751657948 44.573169934387465, -111.23423317741685 44.60256219945728, -111.2197977746124 44.61798167179501, -111.22397136704939 44.626908129437936, -111.27066545603384 44.64221207876761, -111.2702079227576 44.67380197479838, -111.2956684166466 44.682938031585024, -111.31547538030009 44.70519304692601, -111.31922174482384 44.727864048703566, -111.34997718138749 44.72617756819972, -111.37230954015934 44.74508702687007, -111.38495956854877 44.737693916990224, -111.39508404640776 44.70886952780057, -111.44363209835547 44.7131796238815, -111.47542511802493 44.70216225159879, -111.48080398324339 44.69141596985446, -111.46069189379773 44.67002307733782, -111.45826549619869 44.65255532508502, -111.47016783688696 44.64071033146848, -111.50769069414207 44.6376886018482, -111.50174711308966 44.615971208828626, -111.51452644436159 44.59319696160043, -111.492903852734 44.551189117827164, -111.46282741171524 44.54994209098999, -111.45932530323745 44.5379218443079, -111.48257309119003 44.53614382606645, -111.49024096969498 44.52869730622194, -111.5672308380012 44.55286668803615, -111.60524857924503 44.542989833485706, -111.68486268477682 44.55075194353839, -111.71699771471464 44.53376063303631, -111.76691810747099 44.51882537305522, -111.79260819686277 44.518462744779185, -111.80783728935546 44.50398185802817, -111.87250235503183 44.55626586188765, -111.94038590207015 44.54972663798981, -111.97781830947241 44.52967619535099, -112.02361318394037 44.53504319744462, -112.02707716464522 44.52284381239417, -112.05936693324873 44.528611570536725, -112.09989701499302 44.51823175056734, -112.12419057108974 44.52825293117178, -112.19965791867696 44.531449551229, -112.21776363767543 44.5384952632204, -112.23039853928537 44.559491336794906, -112.25667556844394 44.559971871064704, -112.28234130993718 44.54170286573395, -112.3425074020048 44.5251001891358, -112.34057707988745 44.49718024667044, -112.36758366533337 44.44927052409673, -112.4207533110511 44.44928487381566, -112.45851969909563 44.468834630413255, -112.50183953197154 44.462997351249896, -112.53932436506165 44.47749750910373, -112.65318902208969 44.48080229599532, -112.71432587005222 44.49693547258431, -112.73371228851363 44.484320360117295, -112.77986316034054 44.473921942497896, -112.79622790098568 44.45801090163013, -112.82669142178707 44.42108446428102, -112.81870992162749 44.394819764483714, -112.81739653381561 44.36420254109743, -112.8442753186963 44.35363969745663, -112.87078111449301 44.36997853608216, -112.88730758734926 44.392852039849856, -112.93828125983543 44.407192278634, -112.98524965120868 44.43554048509321, -113.01201451900664 44.43771516686462, -113.00665875838979 44.452615718139214, -113.0203091227807 44.48177605652461, -113.0077130742003 44.510611946210986, -113.03782111568319 44.53295912093802, -113.03966067712349 44.556294146893094, -113.08303687279425 44.58268136324375, -113.05428920538697 44.62428896900826, -113.07314395899152 44.675525546994436, -113.09895599509213 44.69591592774009, -113.1017032669115 44.715173043318885, -113.12743132866422 44.73737936286278, -113.13827391411775 44.7614392309377, -113.24033833621917 44.811840883220384, -113.2571542382438 44.810486829237675, -113.31868008273841 44.780228504236334, -113.34063106017192 44.77900017865733, -113.35002422040617 44.807568655892226, -113.4213788453028 44.833699649463654, -113.44557335207611 44.85123982376348, -113.49619092359518 44.93067038758369, -113.48734823308388 44.93957394784127, -113.46341378258859 44.94077549073188, -113.44876484353347 44.94952265459443, -113.44102941256114 44.9981947772165, -113.45885311036886 45.02744950256181, -113.4554353906712 45.043348939324744, -113.4863055213782 45.058321601822286, -113.49015880943944 45.071218942695964, -113.52060906840671 45.0820638593313, -113.51022567395864 45.107835747301465, -113.55227268158569 45.107549219159296, -113.57437596289515 45.11771125494687, -113.57158388058178 45.13454534018928, -113.5940992112208 45.14974267680583, -113.60092833052329 45.18099216849345, -113.64559263363469 45.20679021750357, -113.69012007047377 45.262281513052585, -113.68870892843955 45.27778822339252, -113.73908074159561 45.32153077723029, -113.74130997302058 45.38238648467069, -113.77502595863376 45.41017241008598, -113.7856624158145 45.445633673787825, -113.76916795785462 45.477707730371094, -113.772304329814 45.50705414886619, -113.78093353587877 45.516865471306744, -113.83371501392901 45.5149081592848, -113.80375451035059 45.58372951484904, -113.8224853486928 45.60063617755071, -113.85202722382866 45.609562376173415, -113.90330571128283 45.61349114272019, -113.90219969504096 45.637252982155985, -113.92353218404759 45.655124754112364, -113.926698654154 45.67121135886998, -113.96414473782266 45.67937836929474, -113.97114890297445 45.69737612867499, -114.00947218444287 45.68633228452825, -114.01987878710054 45.67237803764192, -114.01099009460233 45.65251108491077, -114.01803207670281 45.640773170243676, -114.05651558806517 45.625143995154474, -114.0829669896205 45.5863787216216, -114.11813929039033 45.57112719797988, -114.13204784611384 45.550382684820704, -114.1726678078665 45.54392406800832, -114.19480875071258 45.527917345079686, -114.24199793090196 45.53529082122844, -114.24788007236361 45.50294577771484, -114.26223890879777 45.48585971762469, -114.32643452626877 45.45742468759528, -114.35024666742703 45.463383032799015, -114.37145720972484 45.48574077555003, -114.41905103126624 45.49900799726538, -114.43355512622702 45.52763356255173, -114.46270805663477 45.54784765415104, -114.49659126568736 45.54664963393503, -114.52739213439355 45.558192920826, -114.56092431927487 45.54873997873028, -114.54095779917998 45.59639736382809, -114.56467845440466 45.624271459718386, -114.501741726896 45.65239374876148, -114.51070667494025 45.67405752460047, -114.49756088189343 45.69440148892659, -114.53497676380715 45.72299654163379, -114.54195797976934 45.745999296479965, -114.56354239181985 45.76239874583149, -114.5173757715649 45.81006778683809, -114.49916406150186 45.84268381728202, -114.47380329038867 45.83946813333819, -114.44323160275292 45.8526214379707, -114.40752499512035 45.84645313099526, -114.39283829092062 45.87088650619444, -114.41353011937161 45.910651183256164, -114.42946079397029 45.92147734682925, -114.40529058329145 45.953978942150115, -114.41244731133935 45.9719729716395, -114.4844553923893 45.989806667626794, -114.47452963482561 46.00976536531175, -114.49432105726726 46.023410549298774, -114.46575656894345 46.05081555961192, -114.45602963528302 46.08222983994915, -114.47737005030785 46.107357337472706, -114.50656862007429 46.116142577304174, -114.51894424246683 46.13606299180395, -114.5096137133163 46.15741786015582, -114.46701789369553 46.155262656703144, -114.4408793885384 46.16896896945673, -114.4395531015208 46.22025408782798, -114.47283362237863 46.24378322351879, -114.47379520895856 46.25296144879337, -114.4317958092438 46.28471136750204, -114.40979608420923 46.392911822662256, -114.39701690834943 46.399545640736164, -114.38402486969164 46.42817892482424, -114.41071493245659 46.48737167079497, -114.36046781162355 46.50612494028644, -114.35011498155876 46.51738983226937, -114.34331953488197 46.587881712693274, -114.32471240458585 46.622839751955894, -114.33468520021728 46.654227042388584, -114.38401772073416 46.66159663323441, -114.44153590113018 46.645715586905396, -114.48471803886918 46.623574799471555, -114.54039090757647 46.637890949377265, -114.61082601077305 46.62904805164976, -114.64474009503317 46.66082402779023, -114.64503802006385 46.6709214639406, -114.62592673285604 46.68710727343364, -114.67388722338848 46.73472166117858, -114.6984312520159 46.73376017820675, -114.74810547197688 46.69513239259447, -114.78291949600992 46.70304007199803, -114.77783218392545 46.7557169576927, -114.7940300119555 46.76653167257297, -114.84079191242756 46.77553811565298, -114.86660322327162 46.79704554690085, -114.90232495768367 46.799433505902584, -114.94840884688767 46.85244680702931, -114.94056654418193 46.89088794268747, -114.92412523716655 46.90716544533012, -114.9647302275518 46.925212936588366, -115.00157424467426 46.958809358478504, -115.03733457309568 46.9630012895455, -115.05563839074085 46.97335810852127, -115.08133604352247 47.026524386976575, -115.13550706132247 47.06355049529742, -115.14868383318492 47.09174199453736, -115.17249607795122 47.09757077783837, -115.19307357488725 47.124026427324964, -115.29623463669941 47.179550152202694, -115.32522785525367 47.24514991816244, -115.34366107938934 47.25502252478179, -115.40820777283557 47.26359371032231, -115.42664104877537 47.274374182732515, -115.50193013866289 47.28164441343091, -115.52306406278637 47.291982582952414, -115.55552069220107 47.334613266691804, -115.59953589069829 47.37000335164345, -115.6387823201494 47.38004385515433, -115.66647779571173 47.39916752352764, -115.75032662244706 47.4224758185984, -115.75010557461087 47.43396605815303, -115.73248152957109 47.445303786615625, -115.65608714869825 47.44917986845405, -115.64318571530538 47.457793792327266, -115.64014181355623 47.47523517632385, -115.69277052149425 47.4895406027934, -115.70152265854455 47.52089365075608, -115.74282938644802 47.53369152787394, -115.69208789966666 47.59072093715781, -115.69828412901938 47.616080723994344, -115.73406740663029 47.63987975873056, -115.73366530367622 47.69555449238334, -115.77572723086655 47.70973263632794, -115.7905375395045 47.74483842071123, -115.83674208031618 47.75628146678582, -115.84932398639381 47.80518245965419, -115.86980953115977 47.82745249816651, -115.90392119602632 47.841074111315606, -115.93784227383162 47.86712413517347, -115.99893234274663 47.92514082584091, -116.02531608822648 47.96493917552817, -116.05349246068681 47.97619178995387, -116.05549748422914 48.208483796587075, -116.05669218898657 48.49866521136272, -116.06353130646863 48.99995046981894, -114.72932526438501 48.99997015535388, -114.06346349403003 48.999977511527334, -112.18838743185768 48.99999191305051, -111.28267943442711 49.00001159858533, -110.75079731157211 49.000005382100596, -109.50073703697797 49.00000501947244, -108.25067489743833 49.000009630031855, -107.18812084589348 49.00001714161766, -106.12557964175045 49.00002118233266, -105.06303450050041 49.00002133774484, -104.06299108823987 49.00002672536499)))"
5 | states.4,3,Maine,23,New England,ME,1274923,1352536,39.6,42.1,1236014,6760,7098,9111,382,2911,12647,9360,620309,654614,70726,230512,64382,111472,189815,210752,213862,183402,38.6,37.6,39.6,518200,2.39,58346,81623,112767,159385,12206,32352,340685,2.9,651901,133701,370905,147295,5810,209,539966,75.5,32162,"MULTIPOLYGON (((-68.30470509284083 44.290031434184925, -68.32071171216137 44.225079477738234, -68.40289032486129 44.27080146392257, -68.38792097782232 44.377253066515664, -68.35025374270936 44.39895092941248, -68.35544948064836 44.428857764006125, -68.23870923319544 44.4375633292251, -68.16476880967053 44.3344957219, -68.30470509284083 44.290031434184925)), ((-69.03671450867665 47.25736163257443, -68.89487199226733 47.182256498830895, -68.51467302934844 47.29696431840466, -68.3912568471377 47.28509715265909, -68.3348137559721 47.357374096673766, -68.23080678600002 47.35214820878372, -67.79101074658269 47.061003601502705, -67.78028958979758 45.94706274025731, -67.7556150667948 45.9165802073735, -67.7945708237807 45.878475694363544, -67.75936712976295 45.82779860000318, -67.8030534244138 45.794508132769806, -67.80343278539459 45.6781136254761, -67.75295518838999 45.659289177234484, -67.71803460344779 45.6812994702932, -67.61514033243867 45.60519892193196, -67.43930074169816 45.592561430119986, -67.41608424338528 45.503554526982214, -67.50410666255772 45.485815995015344, -67.41855508885021 45.375852337568915, -67.47795007779081 45.280280412121726, -67.43943486235622 45.1895839720417, -67.34560567659969 45.12225224163154, -67.27409522515256 45.182783293157, -67.16590564884046 45.156264390938304, -67.15066075611583 45.12198990597591, -67.06535861885817 44.95929564204579, -67.1467066573939 44.904581199872155, -66.96927103600245 44.82865512751556, -67.00771875077362 44.78062501235422, -67.2003646079873 44.65378121587423, -67.30846813778982 44.65352105598822, -67.38851045551166 44.69140022142648, -67.5709936034853 44.59833322850221, -67.61883826018567 44.54023960883626, -67.81121893252151 44.55400984777435, -67.85856052019489 44.53607720607175, -67.90004177590725 44.45239933266646, -67.96834224185488 44.47122839146749, -67.96343676194874 44.50532741614836, -67.98652369835895 44.484812343079966, -68.01639297502396 44.38495658619968, -68.07437915311226 44.381374388676875, -68.13626472485674 44.47523714345101, -68.24561424541571 44.49064801631812, -68.36376573851089 44.43138683721139, -68.4285712449381 44.46530641269953, -68.55218619924824 44.399049253479404, -68.5300756653732 44.289836081152146, -68.55942679803587 44.25988723348246, -68.74030987464363 44.34633014749255, -68.81285169271183 44.327432292927085, -68.81376774354118 44.41399016010064, -68.74134870104638 44.50728488358237, -68.74527902171428 44.55232062165646, -68.82355207607725 44.60890684738308, -68.82381285761176 44.664089494465145, -68.86060890419355 44.61097040948988, -68.80790285282472 44.56965420144718, -68.81167776137431 44.4945934637654, -68.95917945465936 44.430331847948196, -68.98502775358764 44.271112598983564, -69.02148225613752 44.24409332154789, -69.07445841376796 44.06906601814575, -69.21914072401103 43.94678755624898, -69.29365047392923 43.94219077661381, -69.34645376148018 44.01596957153561, -69.39448843539702 44.025128059471285, -69.48323305468324 43.88716007077926, -69.58932653595161 43.84486279783789, -69.6644528575473 43.852224462665674, -69.65524479314593 43.98024990928519, -69.61293234162082 44.03361283587401, -69.72063558161068 43.937979522640035, -69.7485283787592 43.89337541582256, -69.72467132349874 43.78447716025113, -69.750359444337 43.76170410451573, -69.77767296871656 43.79127074198243, -69.8000128390741 44.02686670664275, -69.76675521560185 44.04773223403788, -69.77727625338258 44.074148305238396, -69.85992845861114 44.00000107998807, -69.7915280108673 43.75608497216251, -69.83039217831146 43.72798625395717, -69.85178532984838 43.744327993608806, -69.84615568127504 43.84234398183253, -69.88679087341524 43.876713423599085, -69.90313219863464 43.79073234260062, -69.97290338126186 43.76884757072963, -69.99950009314773 43.78620777779656, -69.98737043633446 43.845738752340594, -70.02640275969054 43.84560105720374, -70.15662853108091 43.789810489718946, -70.23579784713019 43.6857964225934, -70.22223922769314 43.57724043631043, -70.34161060230895 43.53490871368274, -70.365925605278 43.43030371787944, -70.45697679941992 43.349470663299655, -70.53894109880872 43.3357181931471, -70.66567211789481 43.09105056412125, -70.81866814760241 43.121871066558356, -70.83054816074969 43.15917411927427, -70.81320738019758 43.23522270818387, -70.90108588774837 43.281020017441676, -70.90580114322177 43.30206929376487, -70.96969961272242 43.36637996800738, -70.97909945567778 43.39618391977859, -70.96148292222375 43.43812638685404, -70.9707912274414 43.470211477698, -70.95927840132566 43.516387992524415, -70.9642682700121 43.531989866884885, -70.94961953817318 43.54895361763795, -70.95652439498127 43.56414349447289, -70.97387418943623 43.57182991882394, -70.98444257610913 43.791163559425, -71.00859652031954 44.28214634134264, -71.02872611953063 44.66853811454757, -71.08750925096143 45.301469196722906, -70.95938190579642 45.3388657557299, -70.87644405309453 45.2254453701442, -70.84287555358156 45.27813743442243, -70.81266582076927 45.35467800629442, -70.82913204552773 45.39072615795902, -70.796966917443 45.42517216609605, -70.63492963234103 45.391967020115715, -70.71991058455421 45.512954369937574, -70.55227012274298 45.66066416004918, -70.39638311681085 45.72204598931427, -70.41621391032243 45.79030900094142, -70.25396412505074 45.899004858130695, -70.24746468665518 45.94461976536559, -70.31029526768708 45.968782257242594, -70.28002259296693 46.053154045756, -70.3048496270618 46.06665832275576, -70.22932539863928 46.13743440014002, -70.28349662365537 46.1902492399916, -70.1910584799657 46.33483975347667, -70.04660752656287 46.42611551812968, -70.01414473246751 46.57059827921279, -69.98497755594889 46.69136566908327, -69.23029605045065 47.4533345006127, -69.04697642265222 47.42203066648767, -69.03671450867665 47.25736163257443)))"
6 |
--------------------------------------------------------------------------------
/testdata/sample.gfs:
--------------------------------------------------------------------------------
1 |
2 |
3 | sample
4 | sample
5 | 3
6 |
7 | 1
8 | -107.48241
9 | -106.47623
10 | 36.99243
11 | 37.42362
12 |
13 |
14 | ID
15 | ID
16 | Integer
17 |
18 |
19 | FIPSSTCO
20 | FIPSSTCO
21 | Integer
22 |
23 |
24 | STATE
25 | STATE
26 | String
27 | 8
28 |
29 |
30 | COUNTY
31 | COUNTY
32 | String
33 | 9
34 |
35 |
36 |
37 |
--------------------------------------------------------------------------------
/testdata/sample.gml:
--------------------------------------------------------------------------------
1 |
2 |
7 |
8 |
9 | -107.482413 36.992426
10 | -106.476229 37.423623
11 |
12 |
13 |
14 |
15 | -107.482079999999996,37.123681999999995 -107.482099999999988,37.125003999999997 -107.482098999999991,37.125318 -107.482096999999996,37.140476999999997 -107.482095,37.15699 -107.482095,37.158352 -107.482089000000002,37.166723999999995 -107.48208799999999,37.168813999999998 -107.482078,37.183799 -107.48207699999999,37.185639999999999 -107.482070999999991,37.195357999999999 -107.482067999999998,37.200514999999996 -107.482052999999993,37.213459 -107.48205999999999,37.214700999999998 -107.482061999999999,37.214988999999996 -107.482258999999999,37.250003 -107.482258000000002,37.250374 -107.482232999999994,37.260458999999997 -107.482208,37.270997999999999 -107.482154999999992,37.284768 -107.482148999999993,37.286463999999995 -107.482137999999992,37.28938 -107.482102999999995,37.298853999999999 -107.482086999999993,37.303385999999996 -107.482078,37.306331999999998 -107.482084,37.307938999999998 -107.482124999999996,37.318244 -107.482129999999998,37.319947999999997 -107.482135,37.321756999999998 -107.482316999999995,37.323512999999998 -107.482412999999994,37.324432000000002 -107.482303999999999,37.328713999999998 -107.48208799999999,37.337159999999997 -107.482054999999988,37.355091999999999 -107.482041999999993,37.362065999999999 -107.482024999999993,37.371271 -107.482234999999989,37.375001999999995 -107.48222899999999,37.377417 -107.482144999999988,37.416198999999999 -107.482130999999995,37.422672999999996 -107.462783000000002,37.422846 -107.39667,37.423434999999998 -107.377291,37.423608000000002 -107.375607000000002,37.423622999999999 -107.35602999999999,37.423079999999999 -107.342062999999996,37.423065 -107.289935999999997,37.423009 -107.250603999999996,37.422967 -107.241874999999993,37.422969999999999 -107.217866,37.422981999999998 -107.217109999999991,37.422982999999995 -107.211573,37.422961 -107.20277,37.422953999999997 -107.197215999999997,37.422953 -107.194076999999993,37.422953 -107.192053,37.422953 -107.16666699999999,37.422947999999998 -107.165511999999993,37.422947999999998 -107.128679999999989,37.422941999999999 -107.128681999999998,37.422143999999996 -107.128683999999993,37.420639 -107.128703000000002,37.410601 -107.128714000000002,37.403934999999997 -107.128737,37.392409 -107.125599999999991,37.392485999999998 -107.113586999999995,37.392491 -107.11323,37.392488999999998 -107.110624999999999,37.392448000000002 -107.091163999999992,37.392426 -107.089198999999994,37.392454999999998 -107.070892999999998,37.392373999999997 -107.062556999999998,37.392337999999995 -107.055982,37.392325 -107.048276999999999,37.392308999999997 -107.047393999999997,37.392306999999995 -107.045259999999999,37.392303999999996 -107.022498999999996,37.392704999999999 -107.000596999999999,37.393135999999998 -106.975481000000002,37.393313999999997 -106.960898999999998,37.393439 -106.939185999999992,37.393586999999997 -106.907089999999997,37.393805999999998 -106.898212999999998,37.393865999999996 -106.897718999999995,37.393868999999995 -106.87559499999999,37.394022999999997 -106.871183000000002,37.393664999999999 -106.840406000000002,37.394222999999997 -106.837565999999995,37.394275 -106.837018,37.394284999999996 -106.801216999999994,37.394973999999998 -106.790633999999997,37.395204 -106.773124999999993,37.395537999999995 -106.753411,37.395913999999998 -106.751331999999991,37.395953999999996 -106.750593999999992,37.395969 -106.72951599999999,37.396045 -106.71076699999999,37.396237999999997 -106.710774999999998,37.404227999999996 -106.709237000000002,37.404209999999999 -106.706400000000002,37.404176999999997 -106.705868999999993,37.404170999999998 -106.678372999999993,37.403596 -106.678376,37.396571999999999 -106.678246,37.396572999999997 -106.678298999999996,37.376494 -106.678303,37.375006999999997 -106.678101999999996,37.363461 -106.678230999999997,37.338873999999997 -106.678286999999997,37.328437999999998 -106.678357999999989,37.315069 -106.678485999999992,37.291074999999999 -106.678567999999999,37.275647999999997 -106.678704999999994,37.250005999999999 -106.678353999999999,37.228566 -106.673857999999996,37.226701999999996 -106.670661999999993,37.225377000000002 -106.648478999999995,37.216180999999999 -106.625589999999988,37.206691999999997 -106.614396999999997,37.202138999999995 -106.603405999999993,37.197404999999996 -106.597383999999991,37.194977000000002 -106.595224000000002,37.180546 -106.592466999999999,37.162123999999999 -106.592327999999995,37.161200999999998 -106.591256999999999,37.154053999999995 -106.589187999999993,37.140212999999996 -106.577638999999991,37.125762999999999 -106.576986999999988,37.125008 -106.574125999999993,37.121423 -106.552790000000002,37.094735999999997 -106.552276999999989,37.094093999999998 -106.551070999999993,37.092585999999997 -106.535272999999989,37.072828 -106.500588999999991,37.029444999999996 -106.48906199999999,37.015079999999998 -106.481212999999997,37.002079999999999 -106.479962999999998,37.000009999999996 -106.479743999999997,36.999361 -106.478712000000002,36.997715999999997 -106.476228999999989,36.993758 -106.48355699999999,36.993741 -106.498516999999993,36.993704999999999 -106.498593999999997,36.993704999999999 -106.499630999999994,36.993701999999999 -106.500588999999991,36.993767999999996 -106.509268999999989,36.993693 -106.534694999999999,36.993473999999999 -106.537663999999992,36.993451 -106.540391,36.993426999999997 -106.545130999999998,36.993386 -106.545311999999996,36.993336999999997 -106.547995,36.993361 -106.562201000000002,36.993201999999997 -106.563108,36.993186 -106.585673999999997,36.992975 -106.591177999999999,36.992922999999998 -106.616281999999998,36.992906999999995 -106.617159,36.992967 -106.617125,36.993003999999999 -106.625589999999988,36.993122 -106.625589999999988,36.993158 -106.625641000000002,36.993158 -106.628651999999988,36.993175 -106.628732999999997,36.993161 -106.661299,36.993243999999997 -106.661344,36.993243 -106.662177,36.993234999999999 -106.670400999999998,36.993128999999996 -106.675625999999994,36.993122999999997 -106.722865999999996,36.992705 -106.737439999999992,36.992576999999997 -106.750591,36.992460999999999 -106.775599,36.992528 -106.782152999999994,36.992514 -106.787490999999989,36.992503999999997 -106.79565199999999,36.992488999999999 -106.797570999999991,36.992486 -106.80189399999999,36.992491 -106.841484999999992,36.992436999999995 -106.843918000000002,36.992433999999996 -106.849674999999991,36.992426999999999 -106.869795999999994,36.992426000000002 -106.875591999999997,36.998309999999996 -106.877029999999991,37.000009999999996 -106.877291999999997,37.000138999999997 -106.878238999999994,37.000138 -106.878653999999997,37.000136999999995 -106.891454999999993,37.000135999999998 -106.895766999999992,37.000132 -106.905698999999998,37.000121999999998 -106.906379999999999,37.000121999999998 -106.906990999999991,37.000121999999998 -106.91425799999999,37.000121999999998 -106.914580999999998,37.000121999999998 -106.914736999999988,37.000121999999998 -106.918625999999989,37.000121999999998 -106.918887999999995,37.000121999999998 -106.9217,37.000121999999998 -106.923314999999988,37.000119999999995 -106.936997999999988,37.000107999999997 -106.937824999999989,37.000107 -106.939741999999995,37.000107 -106.944445999999999,37.000105999999995 -106.945889999999991,37.000105999999995 -106.95280799999999,37.000104999999998 -106.956018,37.000105999999995 -106.969460999999995,37.000110999999997 -106.970327999999995,37.000112 -106.973422999999997,37.000115999999998 -106.975003,37.000116999999996 -106.97963399999999,37.000122999999995 -106.984758999999997,37.000129999999999 -106.985512999999997,37.000129999999999 -107.000326999999999,37.000146 -107.000591999999997,37.000152 -107.000591999999997,37.000008999999999 -107.014899999999997,37.000008999999999 -107.019122999999993,37.000008999999999 -107.027308999999988,37.000008999999999 -107.027993999999993,37.000008999999999 -107.028055999999992,37.000008999999999 -107.059215999999992,37.000008 -107.059238999999991,37.000008 -107.059899999999999,37.000008 -107.10723999999999,37.000008 -107.107292,37.000008 -107.108781999999991,37.000008 -107.12559499999999,37.000006999999997 -107.136818999999988,37.000006999999997 -107.143985999999998,37.000006999999997 -107.145469999999989,37.000006999999997 -107.146096999999997,37.000006999999997 -107.150891999999999,37.000006999999997 -107.156740999999997,37.000006999999997 -107.15773999999999,37.000006999999997 -107.185873999999998,37.000005999999999 -107.186245,37.000005999999999 -107.197244999999995,37.000005999999999 -107.212924,37.000005999999999 -107.237034999999992,37.000005999999999 -107.239716999999999,37.000005999999999 -107.242165999999997,37.000005999999999 -107.242542,37.000005999999999 -107.247575999999995,37.000005000000002 -107.250597999999997,37.000005000000002 -107.251129999999989,37.000005000000002 -107.255268,37.000005000000002 -107.264283999999989,37.000005000000002 -107.277152999999998,37.000005000000002 -107.308899999999994,37.000005000000002 -107.310021999999989,37.000005000000002 -107.321517999999998,37.000005000000002 -107.333767999999992,37.000005000000002 -107.346800000000002,37.000005000000002 -107.350765999999993,37.000005000000002 -107.375602,37.000005000000002 -107.398364999999998,37.000005000000002 -107.400846,37.000005000000002 -107.420912999999999,37.000005000000002 -107.422415,37.000005000000002 -107.423211999999992,37.000005000000002 -107.423673999999991,37.000005000000002 -107.425325,37.000005000000002 -107.428578000000002,37.000005000000002 -107.430444999999992,37.000005000000002 -107.433644,37.000005000000002 -107.436233999999999,37.000005000000002 -107.440533000000002,37.000005000000002 -107.442101999999991,37.000005000000002 -107.442181999999988,37.000005000000002 -107.445526,37.000005000000002 -107.446866,37.000005000000002 -107.454797999999997,37.000005000000002 -107.458819999999989,37.000005000000002 -107.461073999999996,37.000005000000002 -107.468778,37.000005000000002 -107.469765999999993,37.000005000000002 -107.470084999999997,37.000005000000002 -107.472543999999999,37.000005000000002 -107.478601999999995,37.000005000000002 -107.481736999999995,37.000005000000002 -107.481701999999999,37.009951999999998 -107.481701999999999,37.0101 -107.481695999999999,37.011885999999997 -107.481652999999994,37.024768999999999 -107.481615999999988,37.035817000000002 -107.481614999999991,37.035893000000002 -107.481557999999993,37.053705999999998 -107.481550999999996,37.055670999999997 -107.481461999999993,37.082555999999997 -107.481434999999991,37.090604999999996 -107.481425000000002,37.093795999999998 -107.48142399999999,37.093860999999997 -107.482109999999992,37.123664999999995 -107.482079999999996,37.123681999999995
16 | 1
17 | 08007
18 | Colorado
19 | Archuleta
20 |
21 |
22 |
23 |
--------------------------------------------------------------------------------
/testdata/sample.gmt:
--------------------------------------------------------------------------------
1 | # @VGMT1.0 @GPOLYGON
2 | # @R-107.482413/-106.476229/36.992426/37.423623
3 | # @NID|FIPSSTCO|STATE|COUNTY
4 | # @Tinteger|string|string|string
5 | # FEATURE_DATA
6 | >
7 | # @D1|08007|Colorado|Archuleta
8 | # @P
9 | -107.482079999999996 37.123681999999995
10 | -107.482099999999988 37.125003999999997
11 | -107.482098999999991 37.125318
12 | -107.482096999999996 37.140476999999997
13 | -107.482095 37.15699
14 | -107.482095 37.158352
15 | -107.482089000000002 37.166723999999995
16 | -107.48208799999999 37.168813999999998
17 | -107.482078 37.183799
18 | -107.48207699999999 37.185639999999999
19 | -107.482070999999991 37.195357999999999
20 | -107.482067999999998 37.200514999999996
21 | -107.482052999999993 37.213459
22 | -107.48205999999999 37.214700999999998
23 | -107.482061999999999 37.214988999999996
24 | -107.482258999999999 37.250003
25 | -107.482258000000002 37.250374
26 | -107.482232999999994 37.260458999999997
27 | -107.482208 37.270997999999999
28 | -107.482154999999992 37.284768
29 | -107.482148999999993 37.286463999999995
30 | -107.482137999999992 37.28938
31 | -107.482102999999995 37.298853999999999
32 | -107.482086999999993 37.303385999999996
33 | -107.482078 37.306331999999998
34 | -107.482084 37.307938999999998
35 | -107.482124999999996 37.318244
36 | -107.482129999999998 37.319947999999997
37 | -107.482135 37.321756999999998
38 | -107.482316999999995 37.323512999999998
39 | -107.482412999999994 37.324432000000002
40 | -107.482303999999999 37.328713999999998
41 | -107.48208799999999 37.337159999999997
42 | -107.482054999999988 37.355091999999999
43 | -107.482041999999993 37.362065999999999
44 | -107.482024999999993 37.371271
45 | -107.482234999999989 37.375001999999995
46 | -107.48222899999999 37.377417
47 | -107.482144999999988 37.416198999999999
48 | -107.482130999999995 37.422672999999996
49 | -107.462783000000002 37.422846
50 | -107.39667 37.423434999999998
51 | -107.377291 37.423608000000002
52 | -107.375607000000002 37.423622999999999
53 | -107.35602999999999 37.423079999999999
54 | -107.342062999999996 37.423065
55 | -107.289935999999997 37.423009
56 | -107.250603999999996 37.422967
57 | -107.241874999999993 37.422969999999999
58 | -107.217866 37.422981999999998
59 | -107.217109999999991 37.422982999999995
60 | -107.211573 37.422961
61 | -107.20277 37.422953999999997
62 | -107.197215999999997 37.422953
63 | -107.194076999999993 37.422953
64 | -107.192053 37.422953
65 | -107.16666699999999 37.422947999999998
66 | -107.165511999999993 37.422947999999998
67 | -107.128679999999989 37.422941999999999
68 | -107.128681999999998 37.422143999999996
69 | -107.128683999999993 37.420639
70 | -107.128703000000002 37.410601
71 | -107.128714000000002 37.403934999999997
72 | -107.128737 37.392409
73 | -107.125599999999991 37.392485999999998
74 | -107.113586999999995 37.392491
75 | -107.11323 37.392488999999998
76 | -107.110624999999999 37.392448000000002
77 | -107.091163999999992 37.392426
78 | -107.089198999999994 37.392454999999998
79 | -107.070892999999998 37.392373999999997
80 | -107.062556999999998 37.392337999999995
81 | -107.055982 37.392325
82 | -107.048276999999999 37.392308999999997
83 | -107.047393999999997 37.392306999999995
84 | -107.045259999999999 37.392303999999996
85 | -107.022498999999996 37.392704999999999
86 | -107.000596999999999 37.393135999999998
87 | -106.975481000000002 37.393313999999997
88 | -106.960898999999998 37.393439
89 | -106.939185999999992 37.393586999999997
90 | -106.907089999999997 37.393805999999998
91 | -106.898212999999998 37.393865999999996
92 | -106.897718999999995 37.393868999999995
93 | -106.87559499999999 37.394022999999997
94 | -106.871183000000002 37.393664999999999
95 | -106.840406000000002 37.394222999999997
96 | -106.837565999999995 37.394275
97 | -106.837018 37.394284999999996
98 | -106.801216999999994 37.394973999999998
99 | -106.790633999999997 37.395204
100 | -106.773124999999993 37.395537999999995
101 | -106.753411 37.395913999999998
102 | -106.751331999999991 37.395953999999996
103 | -106.750593999999992 37.395969
104 | -106.72951599999999 37.396045
105 | -106.71076699999999 37.396237999999997
106 | -106.710774999999998 37.404227999999996
107 | -106.709237000000002 37.404209999999999
108 | -106.706400000000002 37.404176999999997
109 | -106.705868999999993 37.404170999999998
110 | -106.678372999999993 37.403596
111 | -106.678376 37.396571999999999
112 | -106.678246 37.396572999999997
113 | -106.678298999999996 37.376494
114 | -106.678303 37.375006999999997
115 | -106.678101999999996 37.363461
116 | -106.678230999999997 37.338873999999997
117 | -106.678286999999997 37.328437999999998
118 | -106.678357999999989 37.315069
119 | -106.678485999999992 37.291074999999999
120 | -106.678567999999999 37.275647999999997
121 | -106.678704999999994 37.250005999999999
122 | -106.678353999999999 37.228566
123 | -106.673857999999996 37.226701999999996
124 | -106.670661999999993 37.225377000000002
125 | -106.648478999999995 37.216180999999999
126 | -106.625589999999988 37.206691999999997
127 | -106.614396999999997 37.202138999999995
128 | -106.603405999999993 37.197404999999996
129 | -106.597383999999991 37.194977000000002
130 | -106.595224000000002 37.180546
131 | -106.592466999999999 37.162123999999999
132 | -106.592327999999995 37.161200999999998
133 | -106.591256999999999 37.154053999999995
134 | -106.589187999999993 37.140212999999996
135 | -106.577638999999991 37.125762999999999
136 | -106.576986999999988 37.125008
137 | -106.574125999999993 37.121423
138 | -106.552790000000002 37.094735999999997
139 | -106.552276999999989 37.094093999999998
140 | -106.551070999999993 37.092585999999997
141 | -106.535272999999989 37.072828
142 | -106.500588999999991 37.029444999999996
143 | -106.48906199999999 37.015079999999998
144 | -106.481212999999997 37.002079999999999
145 | -106.479962999999998 37.000009999999996
146 | -106.479743999999997 36.999361
147 | -106.478712000000002 36.997715999999997
148 | -106.476228999999989 36.993758
149 | -106.48355699999999 36.993741
150 | -106.498516999999993 36.993704999999999
151 | -106.498593999999997 36.993704999999999
152 | -106.499630999999994 36.993701999999999
153 | -106.500588999999991 36.993767999999996
154 | -106.509268999999989 36.993693
155 | -106.534694999999999 36.993473999999999
156 | -106.537663999999992 36.993451
157 | -106.540391 36.993426999999997
158 | -106.545130999999998 36.993386
159 | -106.545311999999996 36.993336999999997
160 | -106.547995 36.993361
161 | -106.562201000000002 36.993201999999997
162 | -106.563108 36.993186
163 | -106.585673999999997 36.992975
164 | -106.591177999999999 36.992922999999998
165 | -106.616281999999998 36.992906999999995
166 | -106.617159 36.992967
167 | -106.617125 36.993003999999999
168 | -106.625589999999988 36.993122
169 | -106.625589999999988 36.993158
170 | -106.625641000000002 36.993158
171 | -106.628651999999988 36.993175
172 | -106.628732999999997 36.993161
173 | -106.661299 36.993243999999997
174 | -106.661344 36.993243
175 | -106.662177 36.993234999999999
176 | -106.670400999999998 36.993128999999996
177 | -106.675625999999994 36.993122999999997
178 | -106.722865999999996 36.992705
179 | -106.737439999999992 36.992576999999997
180 | -106.750591 36.992460999999999
181 | -106.775599 36.992528
182 | -106.782152999999994 36.992514
183 | -106.787490999999989 36.992503999999997
184 | -106.79565199999999 36.992488999999999
185 | -106.797570999999991 36.992486
186 | -106.80189399999999 36.992491
187 | -106.841484999999992 36.992436999999995
188 | -106.843918000000002 36.992433999999996
189 | -106.849674999999991 36.992426999999999
190 | -106.869795999999994 36.992426000000002
191 | -106.875591999999997 36.998309999999996
192 | -106.877029999999991 37.000009999999996
193 | -106.877291999999997 37.000138999999997
194 | -106.878238999999994 37.000138
195 | -106.878653999999997 37.000136999999995
196 | -106.891454999999993 37.000135999999998
197 | -106.895766999999992 37.000132
198 | -106.905698999999998 37.000121999999998
199 | -106.906379999999999 37.000121999999998
200 | -106.906990999999991 37.000121999999998
201 | -106.91425799999999 37.000121999999998
202 | -106.914580999999998 37.000121999999998
203 | -106.914736999999988 37.000121999999998
204 | -106.918625999999989 37.000121999999998
205 | -106.918887999999995 37.000121999999998
206 | -106.9217 37.000121999999998
207 | -106.923314999999988 37.000119999999995
208 | -106.936997999999988 37.000107999999997
209 | -106.937824999999989 37.000107
210 | -106.939741999999995 37.000107
211 | -106.944445999999999 37.000105999999995
212 | -106.945889999999991 37.000105999999995
213 | -106.95280799999999 37.000104999999998
214 | -106.956018 37.000105999999995
215 | -106.969460999999995 37.000110999999997
216 | -106.970327999999995 37.000112
217 | -106.973422999999997 37.000115999999998
218 | -106.975003 37.000116999999996
219 | -106.97963399999999 37.000122999999995
220 | -106.984758999999997 37.000129999999999
221 | -106.985512999999997 37.000129999999999
222 | -107.000326999999999 37.000146
223 | -107.000591999999997 37.000152
224 | -107.000591999999997 37.000008999999999
225 | -107.014899999999997 37.000008999999999
226 | -107.019122999999993 37.000008999999999
227 | -107.027308999999988 37.000008999999999
228 | -107.027993999999993 37.000008999999999
229 | -107.028055999999992 37.000008999999999
230 | -107.059215999999992 37.000008
231 | -107.059238999999991 37.000008
232 | -107.059899999999999 37.000008
233 | -107.10723999999999 37.000008
234 | -107.107292 37.000008
235 | -107.108781999999991 37.000008
236 | -107.12559499999999 37.000006999999997
237 | -107.136818999999988 37.000006999999997
238 | -107.143985999999998 37.000006999999997
239 | -107.145469999999989 37.000006999999997
240 | -107.146096999999997 37.000006999999997
241 | -107.150891999999999 37.000006999999997
242 | -107.156740999999997 37.000006999999997
243 | -107.15773999999999 37.000006999999997
244 | -107.185873999999998 37.000005999999999
245 | -107.186245 37.000005999999999
246 | -107.197244999999995 37.000005999999999
247 | -107.212924 37.000005999999999
248 | -107.237034999999992 37.000005999999999
249 | -107.239716999999999 37.000005999999999
250 | -107.242165999999997 37.000005999999999
251 | -107.242542 37.000005999999999
252 | -107.247575999999995 37.000005000000002
253 | -107.250597999999997 37.000005000000002
254 | -107.251129999999989 37.000005000000002
255 | -107.255268 37.000005000000002
256 | -107.264283999999989 37.000005000000002
257 | -107.277152999999998 37.000005000000002
258 | -107.308899999999994 37.000005000000002
259 | -107.310021999999989 37.000005000000002
260 | -107.321517999999998 37.000005000000002
261 | -107.333767999999992 37.000005000000002
262 | -107.346800000000002 37.000005000000002
263 | -107.350765999999993 37.000005000000002
264 | -107.375602 37.000005000000002
265 | -107.398364999999998 37.000005000000002
266 | -107.400846 37.000005000000002
267 | -107.420912999999999 37.000005000000002
268 | -107.422415 37.000005000000002
269 | -107.423211999999992 37.000005000000002
270 | -107.423673999999991 37.000005000000002
271 | -107.425325 37.000005000000002
272 | -107.428578000000002 37.000005000000002
273 | -107.430444999999992 37.000005000000002
274 | -107.433644 37.000005000000002
275 | -107.436233999999999 37.000005000000002
276 | -107.440533000000002 37.000005000000002
277 | -107.442101999999991 37.000005000000002
278 | -107.442181999999988 37.000005000000002
279 | -107.445526 37.000005000000002
280 | -107.446866 37.000005000000002
281 | -107.454797999999997 37.000005000000002
282 | -107.458819999999989 37.000005000000002
283 | -107.461073999999996 37.000005000000002
284 | -107.468778 37.000005000000002
285 | -107.469765999999993 37.000005000000002
286 | -107.470084999999997 37.000005000000002
287 | -107.472543999999999 37.000005000000002
288 | -107.478601999999995 37.000005000000002
289 | -107.481736999999995 37.000005000000002
290 | -107.481701999999999 37.009951999999998
291 | -107.481701999999999 37.0101
292 | -107.481695999999999 37.011885999999997
293 | -107.481652999999994 37.024768999999999
294 | -107.481615999999988 37.035817000000002
295 | -107.481614999999991 37.035893000000002
296 | -107.481557999999993 37.053705999999998
297 | -107.481550999999996 37.055670999999997
298 | -107.481461999999993 37.082555999999997
299 | -107.481434999999991 37.090604999999996
300 | -107.481425000000002 37.093795999999998
301 | -107.48142399999999 37.093860999999997
302 | -107.482109999999992 37.123664999999995
303 | -107.482079999999996 37.123681999999995
304 |
--------------------------------------------------------------------------------
/testdata/sample.gpkg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wavded/ogr2ogr/a3ca7fbbe617ad0bda3227f5f981d1c546f13bc9/testdata/sample.gpkg
--------------------------------------------------------------------------------
/testdata/sample.gpx:
--------------------------------------------------------------------------------
1 |
2 |
8 | 2002-02-27T17:18:33Z
9 |
10 |
11 | 44.586548
12 | 2001-11-28T21:05:28Z
13 | 5066
14 |
15 | Crossing
16 |
17 |
18 |
19 | 57.607200
20 | 2001-06-02T03:26:55Z
21 | 5067
22 |
23 | Dot
24 |
25 |
26 |
27 | 44.826904
28 | 2001-11-16T23:03:38Z
29 | 5096
30 |
31 | Dot
32 |
33 |
34 |
35 | 50.594727
36 | 2001-11-28T21:05:28Z
37 | 5142
38 |
39 | Dot
40 |
41 |
42 |
43 | 127.711200
44 | 2001-06-02T03:26:58Z
45 | 5156
46 |
47 | Dot
48 |
49 |
50 |
51 | 96.926400
52 | 2001-06-02T03:26:59Z
53 | 5224
54 |
55 | Dot
56 |
57 |
58 |
59 | 82.600800
60 | 2001-06-02T03:26:59Z
61 | 5229
62 |
63 | Dot
64 |
65 |
66 |
67 | 82.905600
68 | 2001-06-02T03:26:59Z
69 | 5237
70 |
71 | Dot
72 |
73 |
74 |
75 | 66.696655
76 | 2001-11-28T21:05:28Z
77 | 5254
78 |
79 | Dot
80 |
81 |
82 |
83 | 74.627442
84 | 2001-11-07T23:53:41Z
85 | 5258
86 |
87 | Dot
88 |
89 |
90 |
91 | 65.254761
92 | 2001-11-28T21:05:28Z
93 | 5264
94 |
95 | Dot
96 |
97 |
98 |
99 | 77.419200
100 | 2001-06-02T03:27:00Z
101 | 526708
102 |
103 | Dot
104 |
105 |
106 |
107 | 74.676000
108 | 2001-06-02T03:27:00Z
109 | 526750
110 |
111 | Dot
112 |
113 |
114 |
115 | 78.713135
116 | 2001-11-07T23:53:41Z
117 | 527614
118 |
119 | Dot
120 |
121 |
122 |
123 | 78.713135
124 | 2001-11-07T23:53:41Z
125 | 527631
126 |
127 | Dot
128 |
129 |
130 |
131 | 68.275200
132 | 2001-06-02T03:27:00Z
133 | 5278
134 |
135 | Dot
136 |
137 |
138 |
139 | 64.008000
140 | 2001-06-02T03:27:01Z
141 | 5289
142 |
143 | Dot
144 |
145 |
146 |
147 | 52.997925
148 | 2001-11-28T21:05:28Z
149 | 5374FIRE
150 |
151 | Dot
152 |
153 |
154 |
155 | 56.388000
156 | 2001-06-02T03:27:02Z
157 | 5376
158 |
159 | Dot
160 |
161 |
162 |
163 | 56.388000
164 | 2001-06-02T03:26:55Z
165 | 6006
166 |
167 | Dot
168 |
169 |
170 |
171 | 46.028564
172 | 2001-11-28T21:05:28Z
173 | 6006BLUE
174 |
175 | Dot
176 |
177 |
178 |
179 | 37.616943
180 | 2001-11-28T21:05:28Z
181 | 6014MEADOW
182 |
183 | Dot
184 |
185 |
186 |
187 | 56.388000
188 | 2001-06-02T03:26:55Z
189 | 6029
190 |
191 | Dot
192 |
193 |
194 |
195 | 50.292000
196 | 2001-06-02T03:27:05Z
197 | 6053
198 |
199 | Dot
200 |
201 |
202 |
203 | 25.603200
204 | 2001-06-02T03:26:57Z
205 | 6066
206 |
207 | Dot
208 |
209 |
210 |
211 | 34.442400
212 | 2001-06-02T03:26:57Z
213 | 6067
214 |
215 | Dot
216 |
217 |
218 |
219 | 30.480000
220 | 2001-06-02T03:26:57Z
221 | 6071
222 |
223 | Dot
224 |
225 |
226 |
227 | 15.240000
228 | 2001-06-02T03:26:56Z
229 | 6073
230 |
231 | Dot
232 |
233 |
234 |
235 | 37.795200
236 | 2001-06-02T03:26:57Z
237 | 6084
238 |
239 | Dot
240 |
241 |
242 |
243 | 64.008000
244 | 2001-06-02T03:26:55Z
245 | 6130
246 |
247 | Dot
248 |
249 |
250 |
251 | 64.008000
252 | 2001-06-02T03:26:58Z
253 | 6131
254 |
255 | Dot
256 |
257 |
258 |
259 | 62.788800
260 | 2001-06-02T03:27:05Z
261 | 6153
262 |
263 | Dot
264 |
265 |
266 |
267 | 55.473600
268 | 2001-06-02T03:27:05Z
269 | 6171
270 |
271 | Dot
272 |
273 |
274 |
275 | 62.484000
276 | 2001-06-02T03:27:04Z
277 | 6176
278 |
279 | Dot
280 |
281 |
282 |
283 | 62.179200
284 | 2001-06-02T03:27:04Z
285 | 6177
286 |
287 | Dot
288 |
289 |
290 |
291 | 69.799200
292 | 2001-06-02T03:26:55Z
293 | 6272
294 |
295 | Dot
296 |
297 |
298 |
299 | 73.152000
300 | 2001-06-02T03:26:56Z
301 | 6272
302 |
303 | Dot
304 |
305 |
306 |
307 | 70.104000
308 | 2001-06-02T03:27:04Z
309 | 6278
310 |
311 | Dot
312 |
313 |
314 |
315 | 57.564209
316 | 2001-11-16T23:03:38Z
317 | 6280
318 |
319 | Dot
320 |
321 |
322 |
323 | 66.696655
324 | 2001-11-16T23:03:38Z
325 | 6283
326 |
327 | Dot
328 |
329 |
330 |
331 | 72.945191
332 | 2001-11-16T23:03:38Z
333 | 6289
334 |
335 | Dot
336 |
337 |
338 |
339 | 72.847200
340 | 2001-06-02T03:27:04Z
341 | 6297
342 |
343 | Dot
344 |
345 |
346 |
347 | 53.644800
348 | 2001-06-02T03:27:02Z
349 | 6328
350 |
351 | Dot
352 |
353 |
354 |
355 | 43.891200
356 | 2001-06-02T03:27:03Z
357 | 6354
358 |
359 | Dot
360 |
361 |
362 |
363 | 48.768000
364 | 2001-06-02T03:27:02Z
365 | 635722
366 |
367 | Dot
368 |
369 |
370 |
371 | 49.072800
372 | 2001-06-02T03:27:02Z
373 | 635783
374 |
375 | Dot
376 |
377 |
378 |
379 | 62.484000
380 | 2001-06-02T03:27:03Z
381 | 6373
382 |
383 | Dot
384 |
385 |
386 |
387 | 3.962400
388 | 2001-06-02T03:26:56Z
389 | 6634
390 |
391 | Dot
392 |
393 |
394 |
395 | 13.411200
396 | 2001-06-02T03:26:56Z
397 | 6979
398 |
399 | Dot
400 |
401 |
402 |
403 | 34.012085
404 | 2001-11-16T23:03:38Z
405 | 6997
406 |
407 | Dot
408 |
409 |
410 |
411 | 87.782400
412 | 2001-06-02T03:27:03Z
413 | BEAR HILL
414 | BEAR HILL TOWER
415 |
416 | Tall Tower
417 |
418 |
419 |
420 | 23.469600
421 | 2001-06-02T00:18:15Z
422 | BELLEVUE
423 | BELLEVUE
424 |
425 | Parking Area
426 |
427 |
428 |
429 | 43.384766
430 | 2001-11-28T21:05:28Z
431 | 6016
432 |
433 | Trailhead
434 |
435 |
436 |
437 | 89.916000
438 | 2001-06-02T03:26:59Z
439 | 5236BRIDGE
440 |
441 | Bridge
442 |
443 |
444 |
445 | 55.473600
446 | 2001-06-02T03:27:01Z
447 | 5376BRIDGE
448 |
449 | Bridge
450 |
451 |
452 |
453 | 52.730400
454 | 2001-06-02T03:27:05Z
455 | 6181CROSS
456 |
457 | Crossing
458 |
459 |
460 |
461 | 45.110400
462 | 2001-06-02T03:27:05Z
463 | 6042CROSS
464 |
465 | Crossing
466 |
467 |
468 |
469 | DARKHOLLPO
470 |
471 | Fishing Area
472 |
473 |
474 | 56.083200
475 | 2001-06-02T03:26:57Z
476 | 6121DEAD
477 |
478 | Danger Area
479 |
480 |
481 |
482 | 117.043200
483 | 2001-06-02T03:26:59Z
484 | 5179DEAD
485 |
486 | Danger Area
487 |
488 |
489 |
490 | 69.494400
491 | 2001-06-02T03:27:01Z
492 | 5299DEAD
493 |
494 | Danger Area
495 |
496 |
497 |
498 | 56.997600
499 | 2001-06-02T03:27:02Z
500 | 5376DEAD
501 |
502 | Danger Area
503 |
504 |
505 |
506 | 46.939200
507 | 2001-06-02T03:27:03Z
508 | 6353DEAD
509 |
510 | Danger Area
511 |
512 |
513 |
514 | 61.264800
515 | 2001-06-02T03:27:04Z
516 | 6155DEAD
517 |
518 | Danger Area
519 |
520 |
521 |
522 | 110.947200
523 | 2001-06-02T03:26:59Z
524 | GATE14
525 |
526 | Truck Stop
527 |
528 |
529 |
530 | 77.724000
531 | 2001-06-02T03:27:00Z
532 | GATE16
533 |
534 | Truck Stop
535 |
536 |
537 |
538 | 65.836800
539 | 2001-06-02T03:27:01Z
540 | GATE17
541 |
542 | Truck Stop
543 |
544 |
545 |
546 | 57.302400
547 | 2001-06-02T03:27:02Z
548 | GATE19
549 |
550 | Truck Stop
551 |
552 |
553 |
554 | 49.377600
555 | 2001-06-02T03:27:03Z
556 | GATE21
557 |
558 | Truck Stop
559 |
560 |
561 |
562 | 81.076800
563 | 2001-06-02T03:27:03Z
564 | GATE24
565 |
566 | Truck Stop
567 |
568 |
569 |
570 | 21.515015
571 | 2001-11-28T21:05:28Z
572 | GATE5
573 |
574 | Truck Stop
575 |
576 |
577 |
578 | 26.561890
579 | 2001-11-07T23:53:41Z
580 | GATE6
581 |
582 | Trailhead
583 |
584 |
585 |
586 | 32.004000
587 | 2001-06-02T00:18:16Z
588 | 6077LOGS
589 |
590 | Amusement Park
591 |
592 |
593 |
594 | 119.809082
595 | 2001-11-07T23:53:41Z
596 | 5148NANEPA
597 |
598 | Trailhead
599 |
600 |
601 |
602 | 73.761600
603 | 2001-06-02T03:27:00Z
604 | 5267OBSTAC
605 |
606 | Amusement Park
607 |
608 |
609 |
610 | 45.307495
611 | 2001-11-07T23:53:41Z
612 | PANTHRCAVE
613 |
614 | Tunnel
615 |
616 |
617 |
618 | 77.992066
619 | 2001-11-07T23:53:41Z
620 | 5252PURPLE
621 |
622 | Summit
623 |
624 |
625 |
626 | 67.970400
627 | 2001-06-02T03:27:01Z
628 | 5287WATER
629 |
630 | Swimming Area
631 |
632 |
633 |
634 | 81.076800
635 | 2001-06-02T03:27:00Z
636 | 5239ROAD
637 |
638 | Truck Stop
639 |
640 |
641 |
642 | 67.360800
643 | 2001-06-02T03:27:01Z
644 | 5278ROAD
645 |
646 | Truck Stop
647 |
648 |
649 |
650 | 53.949600
651 | 2001-06-02T00:18:14Z
652 | 5058ROAD
653 | ROAD CROSSING
654 |
655 | Dot
656 |
657 |
658 |
659 | 69.799200
660 | 2001-06-02T00:18:13Z
661 | SHEEPFOLD
662 |
663 | Parking Area
664 |
665 |
666 |
667 | 64.008000
668 | 2001-06-02T03:27:04Z
669 | SOAPBOX
670 |
671 | Cemetery
672 |
673 |
674 |
675 | 64.533692
676 | 2001-11-07T23:53:41Z
677 | 5376STREAM
678 |
679 | Bridge
680 |
681 |
682 |
683 | 61.649902
684 | 2001-11-28T21:05:28Z
685 | 5144SUMMIT
686 |
687 | Summit
688 |
689 |
690 |
691 | 67.360800
692 | 2001-06-02T00:18:16Z
693 | 5150TANK
694 | WATER TANK
695 |
696 | Museum
697 |
698 |
699 |
700 | BELLEVUE
701 |
702 | 1
703 |
704 | 23.469600
705 | 2001-06-02T00:18:15Z
706 | BELLEVUE
707 | BELLEVUE
708 |
709 | Parking Area
710 |
711 |
712 |
713 | 26.561890
714 | 2001-11-07T23:53:41Z
715 | GATE6
716 |
717 | Trailhead
718 |
719 |
720 |
721 | 45.307495
722 | 2001-11-07T23:53:41Z
723 | PANTHRCAVE
724 |
725 | Tunnel
726 |
727 |
728 |
729 | 37.616943
730 | 2001-11-28T21:05:28Z
731 | 6014MEADOW
732 |
733 | Dot
734 |
735 |
736 |
737 | 56.388000
738 | 2001-06-02T03:26:55Z
739 | 6006
740 |
741 | Dot
742 |
743 |
744 |
745 | 46.028564
746 | 2001-11-28T21:05:28Z
747 | 6006BLUE
748 |
749 | Dot
750 |
751 |
752 |
753 | 44.826904
754 | 2001-11-16T23:03:38Z
755 | 5096
756 |
757 | Dot
758 |
759 |
760 |
761 | 44.586548
762 | 2001-11-28T21:05:28Z
763 | 5066
764 |
765 | Crossing
766 |
767 |
768 |
769 | 57.607200
770 | 2001-06-02T03:26:55Z
771 | 5067
772 |
773 | Dot
774 |
775 |
776 |
777 | 53.949600
778 | 2001-06-02T00:18:14Z
779 | 5058ROAD
780 | ROAD CROSSING
781 |
782 | Dot
783 |
784 |
785 |
786 | 67.360800
787 | 2001-06-02T00:18:16Z
788 | 5150TANK
789 | WATER TANK
790 |
791 | Museum
792 |
793 |
794 |
795 | 50.594727
796 | 2001-11-28T21:05:28Z
797 | 5142
798 |
799 | Dot
800 |
801 |
802 |
803 | 61.649902
804 | 2001-11-28T21:05:28Z
805 | 5144SUMMIT
806 |
807 | Summit
808 |
809 |
810 |
811 | 127.711200
812 | 2001-06-02T03:26:58Z
813 | 5156
814 |
815 | Dot
816 |
817 |
818 |
819 | 119.809082
820 | 2001-11-07T23:53:41Z
821 | 5148NANEPA
822 |
823 | Trailhead
824 |
825 |
826 |
827 | 74.627442
828 | 2001-11-07T23:53:41Z
829 | 5258
830 |
831 | Dot
832 |
833 |
834 |
835 | 77.992066
836 | 2001-11-07T23:53:41Z
837 | 5252PURPLE
838 |
839 | Summit
840 |
841 |
842 |
843 | 78.713135
844 | 2001-11-07T23:53:41Z
845 | 527631
846 |
847 | Dot
848 |
849 |
850 |
851 | 78.713135
852 | 2001-11-07T23:53:41Z
853 | 527614
854 |
855 | Dot
856 |
857 |
858 |
859 | 73.761600
860 | 2001-06-02T03:27:00Z
861 | 5267OBSTAC
862 |
863 | Amusement Park
864 |
865 |
866 |
867 | 68.275200
868 | 2001-06-02T03:27:00Z
869 | 5278
870 |
871 | Dot
872 |
873 |
874 |
875 | 64.008000
876 | 2001-06-02T03:27:01Z
877 | 5289
878 |
879 | Dot
880 |
881 |
882 |
883 | 52.997925
884 | 2001-11-28T21:05:28Z
885 | 5374FIRE
886 |
887 | Dot
888 |
889 |
890 |
891 | 56.388000
892 | 2001-06-02T03:27:02Z
893 | 5376
894 |
895 | Dot
896 |
897 |
898 |
899 | 64.533692
900 | 2001-11-07T23:53:41Z
901 | 5376STREAM
902 |
903 | Bridge
904 |
905 |
906 |
907 | 53.644800
908 | 2001-06-02T03:27:02Z
909 | 6328
910 |
911 | Dot
912 |
913 |
914 |
915 | 48.768000
916 | 2001-06-02T03:27:02Z
917 | 635722
918 |
919 | Dot
920 |
921 |
922 |
923 | 49.072800
924 | 2001-06-02T03:27:02Z
925 | 635783
926 |
927 | Dot
928 |
929 |
930 |
931 | 62.484000
932 | 2001-06-02T03:27:03Z
933 | 6373
934 |
935 | Dot
936 |
937 |
938 |
939 | 87.782400
940 | 2001-06-02T03:27:03Z
941 | BEAR HILL
942 | BEAR HILL TOWER
943 |
944 | Tall Tower
945 |
946 |
947 |
948 | 72.945191
949 | 2001-11-16T23:03:38Z
950 | 6289
951 |
952 | Dot
953 |
954 |
955 |
956 | 72.847200
957 | 2001-06-02T03:27:04Z
958 | 6297
959 |
960 | Dot
961 |
962 |
963 |
964 | 66.696655
965 | 2001-11-16T23:03:38Z
966 | 6283
967 |
968 | Dot
969 |
970 |
971 |
972 | 57.564209
973 | 2001-11-16T23:03:38Z
974 | 6280
975 |
976 | Dot
977 |
978 |
979 |
980 | 62.179200
981 | 2001-06-02T03:27:04Z
982 | 6177
983 |
984 | Dot
985 |
986 |
987 |
988 | 62.484000
989 | 2001-06-02T03:27:04Z
990 | 6176
991 |
992 | Dot
993 |
994 |
995 |
996 | 62.788800
997 | 2001-06-02T03:27:05Z
998 | 6153
999 |
1000 | Dot
1001 |
1002 |
1003 |
1004 | 55.473600
1005 | 2001-06-02T03:27:05Z
1006 | 6171
1007 |
1008 | Dot
1009 |
1010 |
1011 |
1012 | 64.008000
1013 | 2001-06-02T03:26:58Z
1014 | 6131
1015 |
1016 | Dot
1017 |
1018 |
1019 |
1020 | 64.008000
1021 | 2001-06-02T03:26:55Z
1022 | 6130
1023 |
1024 | Dot
1025 |
1026 |
1027 |
1028 | 56.388000
1029 | 2001-06-02T03:26:55Z
1030 | 6029
1031 |
1032 | Dot
1033 |
1034 |
1035 |
1036 | 56.388000
1037 | 2001-06-02T03:26:55Z
1038 | 6006
1039 |
1040 | Dot
1041 |
1042 |
1043 |
1044 | 37.616943
1045 | 2001-11-28T21:05:28Z
1046 | 6014MEADOW
1047 |
1048 | Dot
1049 |
1050 |
1051 |
1052 | 45.307495
1053 | 2001-11-07T23:53:41Z
1054 | PANTHRCAVE
1055 |
1056 | Tunnel
1057 |
1058 |
1059 |
1060 | 26.561890
1061 | 2001-11-07T23:53:41Z
1062 | GATE6
1063 |
1064 | Trailhead
1065 |
1066 |
1067 |
1068 | 23.469600
1069 | 2001-06-02T00:18:15Z
1070 | BELLEVUE
1071 | BELLEVUE
1072 |
1073 | Parking Area
1074 |
1075 |
1076 |
1077 |
--------------------------------------------------------------------------------
/testdata/sample.gtm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wavded/ogr2ogr/a3ca7fbbe617ad0bda3227f5f981d1c546f13bc9/testdata/sample.gtm
--------------------------------------------------------------------------------
/testdata/sample.itf:
--------------------------------------------------------------------------------
1 | SCNT
2 | OGR/GDAL 1.7.2, INTERLIS Driver
3 | ////
4 | MTID INTERLIS1
5 | MODL test
6 | TOPI Topic
7 | TABL sample
8 | OBJE 0 1 08007 Colorado Archuleta
9 | STPT -107.48208 37.123682
10 | LIPT -107.4821 37.125004
11 | LIPT -107.482099 37.125318
12 | LIPT -107.482097 37.140477
13 | LIPT -107.482095 37.15699
14 | LIPT -107.482095 37.158352
15 | LIPT -107.482089 37.16672399999999
16 | LIPT -107.482088 37.168814
17 | LIPT -107.482078 37.183799
18 | LIPT -107.482077 37.18564
19 | LIPT -107.482071 37.195358
20 | LIPT -107.482068 37.200515
21 | LIPT -107.482053 37.213459
22 | LIPT -107.48206 37.214701
23 | LIPT -107.482062 37.214989
24 | LIPT -107.482259 37.250003
25 | LIPT -107.482258 37.250374
26 | LIPT -107.482233 37.260459
27 | LIPT -107.482208 37.270998
28 | LIPT -107.482155 37.284768
29 | LIPT -107.482149 37.286464
30 | LIPT -107.482138 37.28938
31 | LIPT -107.482103 37.298854
32 | LIPT -107.482087 37.303386
33 | LIPT -107.482078 37.306332
34 | LIPT -107.482084 37.307939
35 | LIPT -107.482125 37.318244
36 | LIPT -107.48213 37.319948
37 | LIPT -107.482135 37.321757
38 | LIPT -107.482317 37.323513
39 | LIPT -107.482413 37.324432
40 | LIPT -107.482304 37.328714
41 | LIPT -107.482088 37.33716
42 | LIPT -107.482055 37.355092
43 | LIPT -107.482042 37.362066
44 | LIPT -107.482025 37.371271
45 | LIPT -107.482235 37.37500199999999
46 | LIPT -107.482229 37.377417
47 | LIPT -107.482145 37.416199
48 | LIPT -107.482131 37.422673
49 | LIPT -107.462783 37.422846
50 | LIPT -107.39667 37.423435
51 | LIPT -107.377291 37.423608
52 | LIPT -107.375607 37.423623
53 | LIPT -107.35603 37.42308
54 | LIPT -107.342063 37.423065
55 | LIPT -107.289936 37.423009
56 | LIPT -107.250604 37.422967
57 | LIPT -107.241875 37.42297
58 | LIPT -107.217866 37.422982
59 | LIPT -107.21711 37.422983
60 | LIPT -107.211573 37.422961
61 | LIPT -107.20277 37.422954
62 | LIPT -107.197216 37.422953
63 | LIPT -107.194077 37.422953
64 | LIPT -107.192053 37.422953
65 | LIPT -107.166667 37.422948
66 | LIPT -107.165512 37.422948
67 | LIPT -107.12868 37.422942
68 | LIPT -107.128682 37.422144
69 | LIPT -107.128684 37.420639
70 | LIPT -107.128703 37.410601
71 | LIPT -107.128714 37.403935
72 | LIPT -107.128737 37.392409
73 | LIPT -107.1256 37.392486
74 | LIPT -107.113587 37.392491
75 | LIPT -107.11323 37.392489
76 | LIPT -107.110625 37.392448
77 | LIPT -107.091164 37.392426
78 | LIPT -107.089199 37.392455
79 | LIPT -107.070893 37.392374
80 | LIPT -107.062557 37.392338
81 | LIPT -107.055982 37.392325
82 | LIPT -107.048277 37.392309
83 | LIPT -107.047394 37.392307
84 | LIPT -107.04526 37.392304
85 | LIPT -107.022499 37.392705
86 | LIPT -107.000597 37.393136
87 | LIPT -106.975481 37.393314
88 | LIPT -106.960899 37.393439
89 | LIPT -106.939186 37.393587
90 | LIPT -106.90709 37.393806
91 | LIPT -106.898213 37.393866
92 | LIPT -106.897719 37.393869
93 | LIPT -106.875595 37.394023
94 | LIPT -106.871183 37.393665
95 | LIPT -106.840406 37.394223
96 | LIPT -106.837566 37.394275
97 | LIPT -106.837018 37.394285
98 | LIPT -106.801217 37.394974
99 | LIPT -106.790634 37.395204
100 | LIPT -106.773125 37.39553799999999
101 | LIPT -106.753411 37.395914
102 | LIPT -106.751332 37.395954
103 | LIPT -106.750594 37.395969
104 | LIPT -106.729516 37.396045
105 | LIPT -106.710767 37.396238
106 | LIPT -106.710775 37.404228
107 | LIPT -106.709237 37.40421
108 | LIPT -106.7064 37.404177
109 | LIPT -106.705869 37.404171
110 | LIPT -106.678373 37.403596
111 | LIPT -106.678376 37.396572
112 | LIPT -106.678246 37.396573
113 | LIPT -106.678299 37.376494
114 | LIPT -106.678303 37.375007
115 | LIPT -106.678102 37.363461
116 | LIPT -106.678231 37.338874
117 | LIPT -106.678287 37.328438
118 | LIPT -106.678358 37.315069
119 | LIPT -106.678486 37.291075
120 | LIPT -106.678568 37.275648
121 | LIPT -106.678705 37.250006
122 | LIPT -106.678354 37.228566
123 | LIPT -106.673858 37.226702
124 | LIPT -106.670662 37.225377
125 | LIPT -106.648479 37.216181
126 | LIPT -106.62559 37.206692
127 | LIPT -106.614397 37.202139
128 | LIPT -106.603406 37.197405
129 | LIPT -106.597384 37.194977
130 | LIPT -106.595224 37.180546
131 | LIPT -106.592467 37.162124
132 | LIPT -106.592328 37.161201
133 | LIPT -106.591257 37.154054
134 | LIPT -106.589188 37.140213
135 | LIPT -106.577639 37.125763
136 | LIPT -106.576987 37.125008
137 | LIPT -106.574126 37.121423
138 | LIPT -106.55279 37.094736
139 | LIPT -106.552277 37.094094
140 | LIPT -106.551071 37.092586
141 | LIPT -106.535273 37.072828
142 | LIPT -106.500589 37.029445
143 | LIPT -106.489062 37.01508
144 | LIPT -106.481213 37.00208
145 | LIPT -106.479963 37.00001
146 | LIPT -106.479744 36.999361
147 | LIPT -106.478712 36.997716
148 | LIPT -106.476229 36.993758
149 | LIPT -106.483557 36.993741
150 | LIPT -106.498517 36.993705
151 | LIPT -106.498594 36.993705
152 | LIPT -106.499631 36.993702
153 | LIPT -106.500589 36.993768
154 | LIPT -106.509269 36.993693
155 | LIPT -106.534695 36.993474
156 | LIPT -106.537664 36.993451
157 | LIPT -106.540391 36.993427
158 | LIPT -106.545131 36.993386
159 | LIPT -106.545312 36.993337
160 | LIPT -106.547995 36.993361
161 | LIPT -106.562201 36.993202
162 | LIPT -106.563108 36.993186
163 | LIPT -106.585674 36.992975
164 | LIPT -106.591178 36.992923
165 | LIPT -106.616282 36.992907
166 | LIPT -106.617159 36.992967
167 | LIPT -106.617125 36.993004
168 | LIPT -106.62559 36.993122
169 | LIPT -106.62559 36.993158
170 | LIPT -106.625641 36.993158
171 | LIPT -106.628652 36.993175
172 | LIPT -106.628733 36.993161
173 | LIPT -106.661299 36.993244
174 | LIPT -106.661344 36.993243
175 | LIPT -106.662177 36.993235
176 | LIPT -106.670401 36.993129
177 | LIPT -106.675626 36.993123
178 | LIPT -106.722866 36.992705
179 | LIPT -106.73744 36.992577
180 | LIPT -106.750591 36.992461
181 | LIPT -106.775599 36.992528
182 | LIPT -106.782153 36.992514
183 | LIPT -106.787491 36.992504
184 | LIPT -106.795652 36.992489
185 | LIPT -106.797571 36.992486
186 | LIPT -106.801894 36.992491
187 | LIPT -106.841485 36.992437
188 | LIPT -106.843918 36.992434
189 | LIPT -106.849675 36.992427
190 | LIPT -106.869796 36.992426
191 | LIPT -106.875592 36.99831
192 | LIPT -106.87703 37.00001
193 | LIPT -106.877292 37.000139
194 | LIPT -106.878239 37.000138
195 | LIPT -106.878654 37.000137
196 | LIPT -106.891455 37.000136
197 | LIPT -106.895767 37.000132
198 | LIPT -106.905699 37.000122
199 | LIPT -106.90638 37.000122
200 | LIPT -106.906991 37.000122
201 | LIPT -106.914258 37.000122
202 | LIPT -106.914581 37.000122
203 | LIPT -106.914737 37.000122
204 | LIPT -106.918626 37.000122
205 | LIPT -106.918888 37.000122
206 | LIPT -106.9217 37.000122
207 | LIPT -106.923315 37.00012
208 | LIPT -106.936998 37.000108
209 | LIPT -106.937825 37.000107
210 | LIPT -106.939742 37.000107
211 | LIPT -106.944446 37.000106
212 | LIPT -106.94589 37.000106
213 | LIPT -106.952808 37.000105
214 | LIPT -106.956018 37.000106
215 | LIPT -106.969461 37.000111
216 | LIPT -106.970328 37.000112
217 | LIPT -106.973423 37.000116
218 | LIPT -106.975003 37.000117
219 | LIPT -106.979634 37.00012299999999
220 | LIPT -106.984759 37.00013
221 | LIPT -106.985513 37.00013
222 | LIPT -107.000327 37.000146
223 | LIPT -107.000592 37.000152
224 | LIPT -107.000592 37.000009
225 | LIPT -107.0149 37.000009
226 | LIPT -107.019123 37.000009
227 | LIPT -107.027309 37.000009
228 | LIPT -107.027994 37.000009
229 | LIPT -107.028056 37.000009
230 | LIPT -107.059216 37.000008
231 | LIPT -107.059239 37.000008
232 | LIPT -107.0599 37.000008
233 | LIPT -107.10724 37.000008
234 | LIPT -107.107292 37.000008
235 | LIPT -107.108782 37.000008
236 | LIPT -107.125595 37.000007
237 | LIPT -107.136819 37.000007
238 | LIPT -107.143986 37.000007
239 | LIPT -107.14547 37.000007
240 | LIPT -107.146097 37.000007
241 | LIPT -107.150892 37.000007
242 | LIPT -107.156741 37.000007
243 | LIPT -107.15774 37.000007
244 | LIPT -107.185874 37.000006
245 | LIPT -107.186245 37.000006
246 | LIPT -107.197245 37.000006
247 | LIPT -107.212924 37.000006
248 | LIPT -107.237035 37.000006
249 | LIPT -107.239717 37.000006
250 | LIPT -107.242166 37.000006
251 | LIPT -107.242542 37.000006
252 | LIPT -107.247576 37.000005
253 | LIPT -107.250598 37.000005
254 | LIPT -107.25113 37.000005
255 | LIPT -107.255268 37.000005
256 | LIPT -107.264284 37.000005
257 | LIPT -107.277153 37.000005
258 | LIPT -107.3089 37.000005
259 | LIPT -107.310022 37.000005
260 | LIPT -107.321518 37.000005
261 | LIPT -107.333768 37.000005
262 | LIPT -107.3468 37.000005
263 | LIPT -107.350766 37.000005
264 | LIPT -107.375602 37.000005
265 | LIPT -107.398365 37.000005
266 | LIPT -107.400846 37.000005
267 | LIPT -107.420913 37.000005
268 | LIPT -107.422415 37.000005
269 | LIPT -107.423212 37.000005
270 | LIPT -107.423674 37.000005
271 | LIPT -107.425325 37.000005
272 | LIPT -107.428578 37.000005
273 | LIPT -107.430445 37.000005
274 | LIPT -107.433644 37.000005
275 | LIPT -107.436234 37.000005
276 | LIPT -107.440533 37.000005
277 | LIPT -107.442102 37.000005
278 | LIPT -107.442182 37.000005
279 | LIPT -107.445526 37.000005
280 | LIPT -107.446866 37.000005
281 | LIPT -107.454798 37.000005
282 | LIPT -107.45882 37.000005
283 | LIPT -107.461074 37.000005
284 | LIPT -107.468778 37.000005
285 | LIPT -107.469766 37.000005
286 | LIPT -107.470085 37.000005
287 | LIPT -107.472544 37.000005
288 | LIPT -107.478602 37.000005
289 | LIPT -107.481737 37.000005
290 | LIPT -107.481702 37.009952
291 | LIPT -107.481702 37.0101
292 | LIPT -107.481696 37.011886
293 | LIPT -107.481653 37.024769
294 | LIPT -107.481616 37.035817
295 | LIPT -107.481615 37.035893
296 | LIPT -107.481558 37.053706
297 | LIPT -107.481551 37.055671
298 | LIPT -107.481462 37.082556
299 | LIPT -107.481435 37.090605
300 | LIPT -107.481425 37.093796
301 | LIPT -107.481424 37.093861
302 | LIPT -107.48211 37.123665
303 | LIPT -107.48208 37.123682
304 | ELIN
305 | ETAB
306 | ETOP
307 | EMOD
308 | ENDE
309 |
--------------------------------------------------------------------------------
/testdata/sample.jml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | featureCollection
5 | feature
6 | geometry
7 | boundedBy
8 |
9 |
10 | prop0
11 | STRING
12 |
13 |
14 |
15 |
16 | prop1
17 | STRING
18 |
19 |
20 |
21 |
22 | R_G_B
23 | STRING
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 | 0.00,0.00 -1.00,-1.00
33 |
34 |
35 |
36 |
37 | 102.0,0.5
38 |
39 | value0
40 |
41 |
42 |
43 |
44 |
45 | 102,0 103,1 104,0 105,1
46 |
47 | value0
48 | 0.0
49 |
50 |
51 |
52 |
53 | 100,0 101,0 101,1 100,1 100,0
54 |
55 | value0
56 | { "this": "that" }
57 |
58 |
59 |
60 |
61 |
--------------------------------------------------------------------------------
/testdata/sample.json:
--------------------------------------------------------------------------------
1 | {
2 | "type": "FeatureCollection",
3 | "features": [
4 | {
5 | "type": "Feature",
6 | "geometry": {
7 | "type": "Point",
8 | "coordinates": [102.0, 0.5]
9 | },
10 | "properties": {
11 | "prop0": "value0"
12 | }
13 | },
14 | {
15 | "type": "Feature",
16 | "geometry": {
17 | "type": "LineString",
18 | "coordinates": [
19 | [102.0, 0.0],
20 | [103.0, 1.0],
21 | [104.0, 0.0],
22 | [105.0, 1.0]
23 | ]
24 | },
25 | "properties": {
26 | "prop0": "value0",
27 | "prop1": 0.0
28 | }
29 | },
30 | {
31 | "type": "Feature",
32 | "geometry": {
33 | "type": "Polygon",
34 | "coordinates": [
35 | [
36 | [100.0, 0.0],
37 | [101.0, 0.0],
38 | [101.0, 1.0],
39 | [100.0, 1.0],
40 | [100.0, 0.0]
41 | ]
42 | ]
43 | },
44 | "properties": {
45 | "prop0": "value0",
46 | "prop1": {
47 | "this": "that"
48 | }
49 | }
50 | }
51 | ]
52 | }
53 |
--------------------------------------------------------------------------------
/testdata/sample.kml:
--------------------------------------------------------------------------------
1 |
2 |
3 | sample
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 | 1
16 | 08007
17 | Colorado
18 | Archuleta
19 |
20 | -107.482079999999996,37.123681999999995 -107.482099999999988,37.125003999999997 -107.482098999999991,37.125318 -107.482096999999996,37.140476999999997 -107.482095,37.15699 -107.482095,37.158352 -107.482089000000002,37.166723999999995 -107.48208799999999,37.168813999999998 -107.482078,37.183799 -107.48207699999999,37.185639999999999 -107.482070999999991,37.195357999999999 -107.482067999999998,37.200514999999996 -107.482052999999993,37.213459 -107.48205999999999,37.214700999999998 -107.482061999999999,37.214988999999996 -107.482258999999999,37.250003 -107.482258000000002,37.250374 -107.482232999999994,37.260458999999997 -107.482208,37.270997999999999 -107.482154999999992,37.284768 -107.482148999999993,37.286463999999995 -107.482137999999992,37.28938 -107.482102999999995,37.298853999999999 -107.482086999999993,37.303385999999996 -107.482078,37.306331999999998 -107.482084,37.307938999999998 -107.482124999999996,37.318244 -107.482129999999998,37.319947999999997 -107.482135,37.321756999999998 -107.482316999999995,37.323512999999998 -107.482412999999994,37.324432000000002 -107.482303999999999,37.328713999999998 -107.48208799999999,37.337159999999997 -107.482054999999988,37.355091999999999 -107.482041999999993,37.362065999999999 -107.482024999999993,37.371271 -107.482234999999989,37.375001999999995 -107.48222899999999,37.377417 -107.482144999999988,37.416198999999999 -107.482130999999995,37.422672999999996 -107.462783000000002,37.422846 -107.39667,37.423434999999998 -107.377291,37.423608000000002 -107.375607000000002,37.423622999999999 -107.35602999999999,37.423079999999999 -107.342062999999996,37.423065 -107.289935999999997,37.423009 -107.250603999999996,37.422967 -107.241874999999993,37.422969999999999 -107.217866,37.422981999999998 -107.217109999999991,37.422982999999995 -107.211573,37.422961 -107.20277,37.422953999999997 -107.197215999999997,37.422953 -107.194076999999993,37.422953 -107.192053,37.422953 -107.16666699999999,37.422947999999998 -107.165511999999993,37.422947999999998 -107.128679999999989,37.422941999999999 -107.128681999999998,37.422143999999996 -107.128683999999993,37.420639 -107.128703000000002,37.410601 -107.128714000000002,37.403934999999997 -107.128737,37.392409 -107.125599999999991,37.392485999999998 -107.113586999999995,37.392491 -107.11323,37.392488999999998 -107.110624999999999,37.392448000000002 -107.091163999999992,37.392426 -107.089198999999994,37.392454999999998 -107.070892999999998,37.392373999999997 -107.062556999999998,37.392337999999995 -107.055982,37.392325 -107.048276999999999,37.392308999999997 -107.047393999999997,37.392306999999995 -107.045259999999999,37.392303999999996 -107.022498999999996,37.392704999999999 -107.000596999999999,37.393135999999998 -106.975481000000002,37.393313999999997 -106.960898999999998,37.393439 -106.939185999999992,37.393586999999997 -106.907089999999997,37.393805999999998 -106.898212999999998,37.393865999999996 -106.897718999999995,37.393868999999995 -106.87559499999999,37.394022999999997 -106.871183000000002,37.393664999999999 -106.840406000000002,37.394222999999997 -106.837565999999995,37.394275 -106.837018,37.394284999999996 -106.801216999999994,37.394973999999998 -106.790633999999997,37.395204 -106.773124999999993,37.395537999999995 -106.753411,37.395913999999998 -106.751331999999991,37.395953999999996 -106.750593999999992,37.395969 -106.72951599999999,37.396045 -106.71076699999999,37.396237999999997 -106.710774999999998,37.404227999999996 -106.709237000000002,37.404209999999999 -106.706400000000002,37.404176999999997 -106.705868999999993,37.404170999999998 -106.678372999999993,37.403596 -106.678376,37.396571999999999 -106.678246,37.396572999999997 -106.678298999999996,37.376494 -106.678303,37.375006999999997 -106.678101999999996,37.363461 -106.678230999999997,37.338873999999997 -106.678286999999997,37.328437999999998 -106.678357999999989,37.315069 -106.678485999999992,37.291074999999999 -106.678567999999999,37.275647999999997 -106.678704999999994,37.250005999999999 -106.678353999999999,37.228566 -106.673857999999996,37.226701999999996 -106.670661999999993,37.225377000000002 -106.648478999999995,37.216180999999999 -106.625589999999988,37.206691999999997 -106.614396999999997,37.202138999999995 -106.603405999999993,37.197404999999996 -106.597383999999991,37.194977000000002 -106.595224000000002,37.180546 -106.592466999999999,37.162123999999999 -106.592327999999995,37.161200999999998 -106.591256999999999,37.154053999999995 -106.589187999999993,37.140212999999996 -106.577638999999991,37.125762999999999 -106.576986999999988,37.125008 -106.574125999999993,37.121423 -106.552790000000002,37.094735999999997 -106.552276999999989,37.094093999999998 -106.551070999999993,37.092585999999997 -106.535272999999989,37.072828 -106.500588999999991,37.029444999999996 -106.48906199999999,37.015079999999998 -106.481212999999997,37.002079999999999 -106.479962999999998,37.000009999999996 -106.479743999999997,36.999361 -106.478712000000002,36.997715999999997 -106.476228999999989,36.993758 -106.48355699999999,36.993741 -106.498516999999993,36.993704999999999 -106.498593999999997,36.993704999999999 -106.499630999999994,36.993701999999999 -106.500588999999991,36.993767999999996 -106.509268999999989,36.993693 -106.534694999999999,36.993473999999999 -106.537663999999992,36.993451 -106.540391,36.993426999999997 -106.545130999999998,36.993386 -106.545311999999996,36.993336999999997 -106.547995,36.993361 -106.562201000000002,36.993201999999997 -106.563108,36.993186 -106.585673999999997,36.992975 -106.591177999999999,36.992922999999998 -106.616281999999998,36.992906999999995 -106.617159,36.992967 -106.617125,36.993003999999999 -106.625589999999988,36.993122 -106.625589999999988,36.993158 -106.625641000000002,36.993158 -106.628651999999988,36.993175 -106.628732999999997,36.993161 -106.661299,36.993243999999997 -106.661344,36.993243 -106.662177,36.993234999999999 -106.670400999999998,36.993128999999996 -106.675625999999994,36.993122999999997 -106.722865999999996,36.992705 -106.737439999999992,36.992576999999997 -106.750591,36.992460999999999 -106.775599,36.992528 -106.782152999999994,36.992514 -106.787490999999989,36.992503999999997 -106.79565199999999,36.992488999999999 -106.797570999999991,36.992486 -106.80189399999999,36.992491 -106.841484999999992,36.992436999999995 -106.843918000000002,36.992433999999996 -106.849674999999991,36.992426999999999 -106.869795999999994,36.992426000000002 -106.875591999999997,36.998309999999996 -106.877029999999991,37.000009999999996 -106.877291999999997,37.000138999999997 -106.878238999999994,37.000138 -106.878653999999997,37.000136999999995 -106.891454999999993,37.000135999999998 -106.895766999999992,37.000132 -106.905698999999998,37.000121999999998 -106.906379999999999,37.000121999999998 -106.906990999999991,37.000121999999998 -106.91425799999999,37.000121999999998 -106.914580999999998,37.000121999999998 -106.914736999999988,37.000121999999998 -106.918625999999989,37.000121999999998 -106.918887999999995,37.000121999999998 -106.9217,37.000121999999998 -106.923314999999988,37.000119999999995 -106.936997999999988,37.000107999999997 -106.937824999999989,37.000107 -106.939741999999995,37.000107 -106.944445999999999,37.000105999999995 -106.945889999999991,37.000105999999995 -106.95280799999999,37.000104999999998 -106.956018,37.000105999999995 -106.969460999999995,37.000110999999997 -106.970327999999995,37.000112 -106.973422999999997,37.000115999999998 -106.975003,37.000116999999996 -106.97963399999999,37.000122999999995 -106.984758999999997,37.000129999999999 -106.985512999999997,37.000129999999999 -107.000326999999999,37.000146 -107.000591999999997,37.000152 -107.000591999999997,37.000008999999999 -107.014899999999997,37.000008999999999 -107.019122999999993,37.000008999999999 -107.027308999999988,37.000008999999999 -107.027993999999993,37.000008999999999 -107.028055999999992,37.000008999999999 -107.059215999999992,37.000008 -107.059238999999991,37.000008 -107.059899999999999,37.000008 -107.10723999999999,37.000008 -107.107292,37.000008 -107.108781999999991,37.000008 -107.12559499999999,37.000006999999997 -107.136818999999988,37.000006999999997 -107.143985999999998,37.000006999999997 -107.145469999999989,37.000006999999997 -107.146096999999997,37.000006999999997 -107.150891999999999,37.000006999999997 -107.156740999999997,37.000006999999997 -107.15773999999999,37.000006999999997 -107.185873999999998,37.000005999999999 -107.186245,37.000005999999999 -107.197244999999995,37.000005999999999 -107.212924,37.000005999999999 -107.237034999999992,37.000005999999999 -107.239716999999999,37.000005999999999 -107.242165999999997,37.000005999999999 -107.242542,37.000005999999999 -107.247575999999995,37.000005000000002 -107.250597999999997,37.000005000000002 -107.251129999999989,37.000005000000002 -107.255268,37.000005000000002 -107.264283999999989,37.000005000000002 -107.277152999999998,37.000005000000002 -107.308899999999994,37.000005000000002 -107.310021999999989,37.000005000000002 -107.321517999999998,37.000005000000002 -107.333767999999992,37.000005000000002 -107.346800000000002,37.000005000000002 -107.350765999999993,37.000005000000002 -107.375602,37.000005000000002 -107.398364999999998,37.000005000000002 -107.400846,37.000005000000002 -107.420912999999999,37.000005000000002 -107.422415,37.000005000000002 -107.423211999999992,37.000005000000002 -107.423673999999991,37.000005000000002 -107.425325,37.000005000000002 -107.428578000000002,37.000005000000002 -107.430444999999992,37.000005000000002 -107.433644,37.000005000000002 -107.436233999999999,37.000005000000002 -107.440533000000002,37.000005000000002 -107.442101999999991,37.000005000000002 -107.442181999999988,37.000005000000002 -107.445526,37.000005000000002 -107.446866,37.000005000000002 -107.454797999999997,37.000005000000002 -107.458819999999989,37.000005000000002 -107.461073999999996,37.000005000000002 -107.468778,37.000005000000002 -107.469765999999993,37.000005000000002 -107.470084999999997,37.000005000000002 -107.472543999999999,37.000005000000002 -107.478601999999995,37.000005000000002 -107.481736999999995,37.000005000000002 -107.481701999999999,37.009951999999998 -107.481701999999999,37.0101 -107.481695999999999,37.011885999999997 -107.481652999999994,37.024768999999999 -107.481615999999988,37.035817000000002 -107.481614999999991,37.035893000000002 -107.481557999999993,37.053705999999998 -107.481550999999996,37.055670999999997 -107.481461999999993,37.082555999999997 -107.481434999999991,37.090604999999996 -107.481425000000002,37.093795999999998 -107.48142399999999,37.093860999999997 -107.482109999999992,37.123664999999995 -107.482079999999996,37.123681999999995
21 |
22 |
23 |
--------------------------------------------------------------------------------
/testdata/sample.kmz:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wavded/ogr2ogr/a3ca7fbbe617ad0bda3227f5f981d1c546f13bc9/testdata/sample.kmz
--------------------------------------------------------------------------------
/testdata/sample.large.shp.zip:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wavded/ogr2ogr/a3ca7fbbe617ad0bda3227f5f981d1c546f13bc9/testdata/sample.large.shp.zip
--------------------------------------------------------------------------------
/testdata/sample.map.zip:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wavded/ogr2ogr/a3ca7fbbe617ad0bda3227f5f981d1c546f13bc9/testdata/sample.map.zip
--------------------------------------------------------------------------------
/testdata/sample.mapml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 | Feature properties
16 |
17 |
18 | Property name
19 | Property value
20 |
21 |
22 | prop0
23 | value0
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 | 102.00000000 0.50000000
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 | Feature properties
40 |
41 |
42 | Property name
43 | Property value
44 |
45 |
46 | prop0
47 | value0
48 |
49 |
50 | prop1
51 | 0.0
52 |
53 |
54 |
55 |
56 |
57 |
58 |
59 | 102.00000000 0.00000000 103.00000000 1.00000000 104.00000000 0.00000000 105.00000000 1.00000000
60 |
61 |
62 |
63 |
64 |
65 |
66 |
67 | Feature properties
68 |
69 |
70 | Property name
71 | Property value
72 |
73 |
74 | prop0
75 | value0
76 |
77 |
78 | prop1
79 | { "this": "that" }
80 |
81 |
82 |
83 |
84 |
85 |
86 |
87 | 100.00000000 0.00000000 101.00000000 0.00000000 101.00000000 1.00000000 100.00000000 1.00000000 100.00000000 0.00000000
88 |
89 |
90 |
91 |
92 |
93 |
--------------------------------------------------------------------------------
/testdata/sample.no-shx.shp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wavded/ogr2ogr/a3ca7fbbe617ad0bda3227f5f981d1c546f13bc9/testdata/sample.no-shx.shp
--------------------------------------------------------------------------------
/testdata/sample.nogeom.csv:
--------------------------------------------------------------------------------
1 | gid,name,description
2 | 1,My Sample Point,A Longer Description of My Point
3 |
--------------------------------------------------------------------------------
/testdata/sample.rss:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | title
5 | channel_description
6 | channel_link
7 | -
8 |
Feature 1
9 |
10 | 37.123681999999995 -107.482079999999996 37.125003999999997 -107.482099999999988 37.125318000000000 -107.482098999999991 37.140476999999997 -107.482096999999996 37.156990000000000 -107.482095000000001 37.158352000000001 -107.482095000000001 37.166723999999995 -107.482089000000002 37.168813999999998 -107.482087999999990 37.183799000000000 -107.482078000000001 37.185639999999999 -107.482076999999990 37.195357999999999 -107.482070999999991 37.200514999999996 -107.482067999999998 37.213459000000000 -107.482052999999993 37.214700999999998 -107.482059999999990 37.214988999999996 -107.482061999999999 37.250003000000000 -107.482258999999999 37.250374000000001 -107.482258000000002 37.260458999999997 -107.482232999999994 37.270997999999999 -107.482208000000000 37.284768000000000 -107.482154999999992 37.286463999999995 -107.482148999999993 37.289380000000001 -107.482137999999992 37.298853999999999 -107.482102999999995 37.303385999999996 -107.482086999999993 37.306331999999998 -107.482078000000001 37.307938999999998 -107.482084000000000 37.318244000000000 -107.482124999999996 37.319947999999997 -107.482129999999998 37.321756999999998 -107.482135000000000 37.323512999999998 -107.482316999999995 37.324432000000002 -107.482412999999994 37.328713999999998 -107.482303999999999 37.337159999999997 -107.482087999999990 37.355091999999999 -107.482054999999988 37.362065999999999 -107.482041999999993 37.371271000000000 -107.482024999999993 37.375001999999995 -107.482234999999989 37.377417000000001 -107.482228999999990 37.416198999999999 -107.482144999999988 37.422672999999996 -107.482130999999995 37.422846000000000 -107.462783000000002 37.423434999999998 -107.396670000000000 37.423608000000002 -107.377291000000000 37.423622999999999 -107.375607000000002 37.423079999999999 -107.356029999999990 37.423065000000001 -107.342062999999996 37.423009000000000 -107.289935999999997 37.422967000000000 -107.250603999999996 37.422969999999999 -107.241874999999993 37.422981999999998 -107.217866000000001 37.422982999999995 -107.217109999999991 37.422961000000001 -107.211573000000001 37.422953999999997 -107.202770000000001 37.422953000000000 -107.197215999999997 37.422953000000000 -107.194076999999993 37.422953000000000 -107.192053000000001 37.422947999999998 -107.166666999999990 37.422947999999998 -107.165511999999993 37.422941999999999 -107.128679999999989 37.422143999999996 -107.128681999999998 37.420639000000001 -107.128683999999993 37.410601000000000 -107.128703000000002 37.403934999999997 -107.128714000000002 37.392409000000001 -107.128737000000001 37.392485999999998 -107.125599999999991 37.392491000000000 -107.113586999999995 37.392488999999998 -107.113230000000001 37.392448000000002 -107.110624999999999 37.392426000000000 -107.091163999999992 37.392454999999998 -107.089198999999994 37.392373999999997 -107.070892999999998 37.392337999999995 -107.062556999999998 37.392325000000000 -107.055982000000000 37.392308999999997 -107.048276999999999 37.392306999999995 -107.047393999999997 37.392303999999996 -107.045259999999999 37.392704999999999 -107.022498999999996 37.393135999999998 -107.000596999999999 37.393313999999997 -106.975481000000002 37.393439000000001 -106.960898999999998 37.393586999999997 -106.939185999999992 37.393805999999998 -106.907089999999997 37.393865999999996 -106.898212999999998 37.393868999999995 -106.897718999999995 37.394022999999997 -106.875594999999990 37.393664999999999 -106.871183000000002 37.394222999999997 -106.840406000000002 37.394275000000000 -106.837565999999995 37.394284999999996 -106.837018000000000 37.394973999999998 -106.801216999999994 37.395204000000000 -106.790633999999997 37.395537999999995 -106.773124999999993 37.395913999999998 -106.753411000000000 37.395953999999996 -106.751331999999991 37.395969000000001 -106.750593999999992 37.396045000000001 -106.729515999999990 37.396237999999997 -106.710766999999990 37.404227999999996 -106.710774999999998 37.404209999999999 -106.709237000000002 37.404176999999997 -106.706400000000002 37.404170999999998 -106.705868999999993 37.403596000000000 -106.678372999999993 37.396571999999999 -106.678376000000000 37.396572999999997 -106.678246000000001 37.376494000000001 -106.678298999999996 37.375006999999997 -106.678303000000000 37.363461000000001 -106.678101999999996 37.338873999999997 -106.678230999999997 37.328437999999998 -106.678286999999997 37.315069000000001 -106.678357999999989 37.291074999999999 -106.678485999999992 37.275647999999997 -106.678567999999999 37.250005999999999 -106.678704999999994 37.228566000000001 -106.678353999999999 37.226701999999996 -106.673857999999996 37.225377000000002 -106.670661999999993 37.216180999999999 -106.648478999999995 37.206691999999997 -106.625589999999988 37.202138999999995 -106.614396999999997 37.197404999999996 -106.603405999999993 37.194977000000002 -106.597383999999991 37.180546000000000 -106.595224000000002 37.162123999999999 -106.592466999999999 37.161200999999998 -106.592327999999995 37.154053999999995 -106.591256999999999 37.140212999999996 -106.589187999999993 37.125762999999999 -106.577638999999991 37.125008000000001 -106.576986999999988 37.121423000000000 -106.574125999999993 37.094735999999997 -106.552790000000002 37.094093999999998 -106.552276999999989 37.092585999999997 -106.551070999999993 37.072828000000001 -106.535272999999989 37.029444999999996 -106.500588999999991 37.015079999999998 -106.489061999999990 37.002079999999999 -106.481212999999997 37.000009999999996 -106.479962999999998 36.999361000000000 -106.479743999999997 36.997715999999997 -106.478712000000002 36.993758000000000 -106.476228999999989 36.993741000000000 -106.483556999999990 36.993704999999999 -106.498516999999993 36.993704999999999 -106.498593999999997 36.993701999999999 -106.499630999999994 36.993767999999996 -106.500588999999991 36.993693000000000 -106.509268999999989 36.993473999999999 -106.534694999999999 36.993451000000000 -106.537663999999992 36.993426999999997 -106.540391000000000 36.993386000000001 -106.545130999999998 36.993336999999997 -106.545311999999996 36.993361000000000 -106.547995000000000 36.993201999999997 -106.562201000000002 36.993186000000001 -106.563108000000000 36.992975000000001 -106.585673999999997 36.992922999999998 -106.591177999999999 36.992906999999995 -106.616281999999998 36.992967000000000 -106.617159000000001 36.993003999999999 -106.617125000000001 36.993122000000000 -106.625589999999988 36.993158000000001 -106.625589999999988 36.993158000000001 -106.625641000000002 36.993175000000001 -106.628651999999988 36.993161000000001 -106.628732999999997 36.993243999999997 -106.661299000000000 36.993243000000000 -106.661344000000000 36.993234999999999 -106.662177000000000 36.993128999999996 -106.670400999999998 36.993122999999997 -106.675625999999994 36.992705000000001 -106.722865999999996 36.992576999999997 -106.737439999999992 36.992460999999999 -106.750591000000000 36.992528000000000 -106.775599000000000 36.992514000000000 -106.782152999999994 36.992503999999997 -106.787490999999989 36.992488999999999 -106.795651999999990 36.992486000000000 -106.797570999999991 36.992491000000001 -106.801893999999990 36.992436999999995 -106.841484999999992 36.992433999999996 -106.843918000000002 36.992426999999999 -106.849674999999991 36.992426000000002 -106.869795999999994 36.998309999999996 -106.875591999999997 37.000009999999996 -106.877029999999991 37.000138999999997 -106.877291999999997 37.000138000000000 -106.878238999999994 37.000136999999995 -106.878653999999997 37.000135999999998 -106.891454999999993 37.000132000000001 -106.895766999999992 37.000121999999998 -106.905698999999998 37.000121999999998 -106.906379999999999 37.000121999999998 -106.906990999999991 37.000121999999998 -106.914257999999990 37.000121999999998 -106.914580999999998 37.000121999999998 -106.914736999999988 37.000121999999998 -106.918625999999989 37.000121999999998 -106.918887999999995 37.000121999999998 -106.921700000000001 37.000119999999995 -106.923314999999988 37.000107999999997 -106.936997999999988 37.000107000000000 -106.937824999999989 37.000107000000000 -106.939741999999995 37.000105999999995 -106.944445999999999 37.000105999999995 -106.945889999999991 37.000104999999998 -106.952807999999990 37.000105999999995 -106.956018000000000 37.000110999999997 -106.969460999999995 37.000112000000001 -106.970327999999995 37.000115999999998 -106.973422999999997 37.000116999999996 -106.975003000000001 37.000122999999995 -106.979633999999990 37.000129999999999 -106.984758999999997 37.000129999999999 -106.985512999999997 37.000146000000001 -107.000326999999999 37.000152000000000 -107.000591999999997 37.000008999999999 -107.000591999999997 37.000008999999999 -107.014899999999997 37.000008999999999 -107.019122999999993 37.000008999999999 -107.027308999999988 37.000008999999999 -107.027993999999993 37.000008999999999 -107.028055999999992 37.000008000000001 -107.059215999999992 37.000008000000001 -107.059238999999991 37.000008000000001 -107.059899999999999 37.000008000000001 -107.107239999999990 37.000008000000001 -107.107292000000001 37.000008000000001 -107.108781999999991 37.000006999999997 -107.125594999999990 37.000006999999997 -107.136818999999988 37.000006999999997 -107.143985999999998 37.000006999999997 -107.145469999999989 37.000006999999997 -107.146096999999997 37.000006999999997 -107.150891999999999 37.000006999999997 -107.156740999999997 37.000006999999997 -107.157739999999990 37.000005999999999 -107.185873999999998 37.000005999999999 -107.186245000000000 37.000005999999999 -107.197244999999995 37.000005999999999 -107.212924000000001 37.000005999999999 -107.237034999999992 37.000005999999999 -107.239716999999999 37.000005999999999 -107.242165999999997 37.000005999999999 -107.242542000000000 37.000005000000002 -107.247575999999995 37.000005000000002 -107.250597999999997 37.000005000000002 -107.251129999999989 37.000005000000002 -107.255268000000001 37.000005000000002 -107.264283999999989 37.000005000000002 -107.277152999999998 37.000005000000002 -107.308899999999994 37.000005000000002 -107.310021999999989 37.000005000000002 -107.321517999999998 37.000005000000002 -107.333767999999992 37.000005000000002 -107.346800000000002 37.000005000000002 -107.350765999999993 37.000005000000002 -107.375602000000001 37.000005000000002 -107.398364999999998 37.000005000000002 -107.400846000000001 37.000005000000002 -107.420912999999999 37.000005000000002 -107.422415000000001 37.000005000000002 -107.423211999999992 37.000005000000002 -107.423673999999991 37.000005000000002 -107.425325000000001 37.000005000000002 -107.428578000000002 37.000005000000002 -107.430444999999992 37.000005000000002 -107.433644000000001 37.000005000000002 -107.436233999999999 37.000005000000002 -107.440533000000002 37.000005000000002 -107.442101999999991 37.000005000000002 -107.442181999999988 37.000005000000002 -107.445526000000001 37.000005000000002 -107.446866000000000 37.000005000000002 -107.454797999999997 37.000005000000002 -107.458819999999989 37.000005000000002 -107.461073999999996 37.000005000000002 -107.468778000000000 37.000005000000002 -107.469765999999993 37.000005000000002 -107.470084999999997 37.000005000000002 -107.472543999999999 37.000005000000002 -107.478601999999995 37.000005000000002 -107.481736999999995 37.009951999999998 -107.481701999999999 37.010100000000001 -107.481701999999999 37.011885999999997 -107.481695999999999 37.024768999999999 -107.481652999999994 37.035817000000002 -107.481615999999988 37.035893000000002 -107.481614999999991 37.053705999999998 -107.481557999999993 37.055670999999997 -107.481550999999996 37.082555999999997 -107.481461999999993 37.090604999999996 -107.481434999999991 37.093795999999998 -107.481425000000002 37.093860999999997 -107.481423999999990 37.123664999999995 -107.482109999999992 37.123681999999995 -107.482079999999996
11 |
12 |
13 |
14 |
--------------------------------------------------------------------------------
/testdata/sample.rti.zip:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wavded/ogr2ogr/a3ca7fbbe617ad0bda3227f5f981d1c546f13bc9/testdata/sample.rti.zip
--------------------------------------------------------------------------------
/testdata/sample.shp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wavded/ogr2ogr/a3ca7fbbe617ad0bda3227f5f981d1c546f13bc9/testdata/sample.shp
--------------------------------------------------------------------------------
/testdata/sample.shp.zip:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wavded/ogr2ogr/a3ca7fbbe617ad0bda3227f5f981d1c546f13bc9/testdata/sample.shp.zip
--------------------------------------------------------------------------------
/testdata/sample.shx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wavded/ogr2ogr/a3ca7fbbe617ad0bda3227f5f981d1c546f13bc9/testdata/sample.shx
--------------------------------------------------------------------------------
/testdata/sample.shz:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wavded/ogr2ogr/a3ca7fbbe617ad0bda3227f5f981d1c546f13bc9/testdata/sample.shz
--------------------------------------------------------------------------------
/testdata/sample.vdv:
--------------------------------------------------------------------------------
1 | mod; DD.MM.YYYY; HH:MM:SS; free
2 | src; "UNKNOWN"; "08.06.2021"; "13.29.07"
3 | chs; "ISO8859-1"
4 | ver; "1.4"
5 | ifv; "1.4"
6 | dve; "1.4"
7 | fft; ""
8 | tbl; sample
9 | atr; prop0; prop1
10 | frm; char[80]; char[80]
11 | rec; "value0"; NULL
12 | rec; "value0"; "0.0"
13 | rec; "value0"; "{ ""this"": ""that"" }"
14 | end; 3
15 | eof; 1
16 |
--------------------------------------------------------------------------------
/testdata/sample.wkt.csv:
--------------------------------------------------------------------------------
1 | id,name,desc,wkt
2 | 1,My Sample Point,A Longer Description of My Point,POINT(-105 45)
3 |
--------------------------------------------------------------------------------
/testdata/simple.shp.zip:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wavded/ogr2ogr/a3ca7fbbe617ad0bda3227f5f981d1c546f13bc9/testdata/simple.shp.zip
--------------------------------------------------------------------------------
/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | "target": "es2022",
4 | "module": "esnext",
5 | "strict": true,
6 | "isolatedModules": true,
7 | "skipLibCheck": true,
8 | "noImplicitReturns": true,
9 | "noUnusedLocals": true,
10 | "forceConsistentCasingInFileNames": true,
11 | "moduleResolution": "node",
12 | "esModuleInterop": true,
13 | "resolveJsonModule": true
14 | },
15 | "exclude": ["node_modules", "dist"]
16 | }
17 |
--------------------------------------------------------------------------------
/vitest.config.ts:
--------------------------------------------------------------------------------
1 | import {defineConfig} from "vitest/config"
2 |
3 | // https://vitest.dev/config/
4 | export default defineConfig({
5 | test: {
6 | include: ["**/*_test.[jt]s"],
7 | testTimeout: 30000,
8 | },
9 | })
10 |
--------------------------------------------------------------------------------