├── .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 | [![build](https://github.com/wavded/ogr2ogr/actions/workflows/build.yml/badge.svg)](https://github.com/wavded/ogr2ogr/actions/workflows/build.yml) [![NPM](https://img.shields.io/npm/v/ogr2ogr.svg)](https://npmjs.com/package/ogr2ogr) ![NPM Downloads](https://img.shields.io/npm/dt/ogr2ogr.svg) 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.48241336.992426 10 | -106.47622937.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 | 9 | 10 | 11 | 44.586548 12 | 13 | 5066 14 | 15 | Crossing 16 | 17 | 18 | 19 | 57.607200 20 | 21 | 5067 22 | 23 | Dot 24 | 25 | 26 | 27 | 44.826904 28 | 29 | 5096 30 | 31 | Dot 32 | 33 | 34 | 35 | 50.594727 36 | 37 | 5142 38 | 39 | Dot 40 | 41 | 42 | 43 | 127.711200 44 | 45 | 5156 46 | 47 | Dot 48 | 49 | 50 | 51 | 96.926400 52 | 53 | 5224 54 | 55 | Dot 56 | 57 | 58 | 59 | 82.600800 60 | 61 | 5229 62 | 63 | Dot 64 | 65 | 66 | 67 | 82.905600 68 | 69 | 5237 70 | 71 | Dot 72 | 73 | 74 | 75 | 66.696655 76 | 77 | 5254 78 | 79 | Dot 80 | 81 | 82 | 83 | 74.627442 84 | 85 | 5258 86 | 87 | Dot 88 | 89 | 90 | 91 | 65.254761 92 | 93 | 5264 94 | 95 | Dot 96 | 97 | 98 | 99 | 77.419200 100 | 101 | 526708 102 | 103 | Dot 104 | 105 | 106 | 107 | 74.676000 108 | 109 | 526750 110 | 111 | Dot 112 | 113 | 114 | 115 | 78.713135 116 | 117 | 527614 118 | 119 | Dot 120 | 121 | 122 | 123 | 78.713135 124 | 125 | 527631 126 | 127 | Dot 128 | 129 | 130 | 131 | 68.275200 132 | 133 | 5278 134 | 135 | Dot 136 | 137 | 138 | 139 | 64.008000 140 | 141 | 5289 142 | 143 | Dot 144 | 145 | 146 | 147 | 52.997925 148 | 149 | 5374FIRE 150 | 151 | Dot 152 | 153 | 154 | 155 | 56.388000 156 | 157 | 5376 158 | 159 | Dot 160 | 161 | 162 | 163 | 56.388000 164 | 165 | 6006 166 | 167 | Dot 168 | 169 | 170 | 171 | 46.028564 172 | 173 | 6006BLUE 174 | 175 | Dot 176 | 177 | 178 | 179 | 37.616943 180 | 181 | 6014MEADOW 182 | 183 | Dot 184 | 185 | 186 | 187 | 56.388000 188 | 189 | 6029 190 | 191 | Dot 192 | 193 | 194 | 195 | 50.292000 196 | 197 | 6053 198 | 199 | Dot 200 | 201 | 202 | 203 | 25.603200 204 | 205 | 6066 206 | 207 | Dot 208 | 209 | 210 | 211 | 34.442400 212 | 213 | 6067 214 | 215 | Dot 216 | 217 | 218 | 219 | 30.480000 220 | 221 | 6071 222 | 223 | Dot 224 | 225 | 226 | 227 | 15.240000 228 | 229 | 6073 230 | 231 | Dot 232 | 233 | 234 | 235 | 37.795200 236 | 237 | 6084 238 | 239 | Dot 240 | 241 | 242 | 243 | 64.008000 244 | 245 | 6130 246 | 247 | Dot 248 | 249 | 250 | 251 | 64.008000 252 | 253 | 6131 254 | 255 | Dot 256 | 257 | 258 | 259 | 62.788800 260 | 261 | 6153 262 | 263 | Dot 264 | 265 | 266 | 267 | 55.473600 268 | 269 | 6171 270 | 271 | Dot 272 | 273 | 274 | 275 | 62.484000 276 | 277 | 6176 278 | 279 | Dot 280 | 281 | 282 | 283 | 62.179200 284 | 285 | 6177 286 | 287 | Dot 288 | 289 | 290 | 291 | 69.799200 292 | 293 | 6272 294 | 295 | Dot 296 | 297 | 298 | 299 | 73.152000 300 | 301 | 6272 302 | 303 | Dot 304 | 305 | 306 | 307 | 70.104000 308 | 309 | 6278 310 | 311 | Dot 312 | 313 | 314 | 315 | 57.564209 316 | 317 | 6280 318 | 319 | Dot 320 | 321 | 322 | 323 | 66.696655 324 | 325 | 6283 326 | 327 | Dot 328 | 329 | 330 | 331 | 72.945191 332 | 333 | 6289 334 | 335 | Dot 336 | 337 | 338 | 339 | 72.847200 340 | 341 | 6297 342 | 343 | Dot 344 | 345 | 346 | 347 | 53.644800 348 | 349 | 6328 350 | 351 | Dot 352 | 353 | 354 | 355 | 43.891200 356 | 357 | 6354 358 | 359 | Dot 360 | 361 | 362 | 363 | 48.768000 364 | 365 | 635722 366 | 367 | Dot 368 | 369 | 370 | 371 | 49.072800 372 | 373 | 635783 374 | 375 | Dot 376 | 377 | 378 | 379 | 62.484000 380 | 381 | 6373 382 | 383 | Dot 384 | 385 | 386 | 387 | 3.962400 388 | 389 | 6634 390 | 391 | Dot 392 | 393 | 394 | 395 | 13.411200 396 | 397 | 6979 398 | 399 | Dot 400 | 401 | 402 | 403 | 34.012085 404 | 405 | 6997 406 | 407 | Dot 408 | 409 | 410 | 411 | 87.782400 412 | 413 | BEAR HILL 414 | BEAR HILL TOWER 415 | 416 | Tall Tower 417 | 418 | 419 | 420 | 23.469600 421 | 422 | BELLEVUE 423 | BELLEVUE 424 | 425 | Parking Area 426 | 427 | 428 | 429 | 43.384766 430 | 431 | 6016 432 | 433 | Trailhead 434 | 435 | 436 | 437 | 89.916000 438 | 439 | 5236BRIDGE 440 | 441 | Bridge 442 | 443 | 444 | 445 | 55.473600 446 | 447 | 5376BRIDGE 448 | 449 | Bridge 450 | 451 | 452 | 453 | 52.730400 454 | 455 | 6181CROSS 456 | 457 | Crossing 458 | 459 | 460 | 461 | 45.110400 462 | 463 | 6042CROSS 464 | 465 | Crossing 466 | 467 | 468 | 469 | DARKHOLLPO 470 | 471 | Fishing Area 472 | 473 | 474 | 56.083200 475 | 476 | 6121DEAD 477 | 478 | Danger Area 479 | 480 | 481 | 482 | 117.043200 483 | 484 | 5179DEAD 485 | 486 | Danger Area 487 | 488 | 489 | 490 | 69.494400 491 | 492 | 5299DEAD 493 | 494 | Danger Area 495 | 496 | 497 | 498 | 56.997600 499 | 500 | 5376DEAD 501 | 502 | Danger Area 503 | 504 | 505 | 506 | 46.939200 507 | 508 | 6353DEAD 509 | 510 | Danger Area 511 | 512 | 513 | 514 | 61.264800 515 | 516 | 6155DEAD 517 | 518 | Danger Area 519 | 520 | 521 | 522 | 110.947200 523 | 524 | GATE14 525 | 526 | Truck Stop 527 | 528 | 529 | 530 | 77.724000 531 | 532 | GATE16 533 | 534 | Truck Stop 535 | 536 | 537 | 538 | 65.836800 539 | 540 | GATE17 541 | 542 | Truck Stop 543 | 544 | 545 | 546 | 57.302400 547 | 548 | GATE19 549 | 550 | Truck Stop 551 | 552 | 553 | 554 | 49.377600 555 | 556 | GATE21 557 | 558 | Truck Stop 559 | 560 | 561 | 562 | 81.076800 563 | 564 | GATE24 565 | 566 | Truck Stop 567 | 568 | 569 | 570 | 21.515015 571 | 572 | GATE5 573 | 574 | Truck Stop 575 | 576 | 577 | 578 | 26.561890 579 | 580 | GATE6 581 | 582 | Trailhead 583 | 584 | 585 | 586 | 32.004000 587 | 588 | 6077LOGS 589 | 590 | Amusement Park 591 | 592 | 593 | 594 | 119.809082 595 | 596 | 5148NANEPA 597 | 598 | Trailhead 599 | 600 | 601 | 602 | 73.761600 603 | 604 | 5267OBSTAC 605 | 606 | Amusement Park 607 | 608 | 609 | 610 | 45.307495 611 | 612 | PANTHRCAVE 613 | 614 | Tunnel 615 | 616 | 617 | 618 | 77.992066 619 | 620 | 5252PURPLE 621 | 622 | Summit 623 | 624 | 625 | 626 | 67.970400 627 | 628 | 5287WATER 629 | 630 | Swimming Area 631 | 632 | 633 | 634 | 81.076800 635 | 636 | 5239ROAD 637 | 638 | Truck Stop 639 | 640 | 641 | 642 | 67.360800 643 | 644 | 5278ROAD 645 | 646 | Truck Stop 647 | 648 | 649 | 650 | 53.949600 651 | 652 | 5058ROAD 653 | ROAD CROSSING 654 | 655 | Dot 656 | 657 | 658 | 659 | 69.799200 660 | 661 | SHEEPFOLD 662 | 663 | Parking Area 664 | 665 | 666 | 667 | 64.008000 668 | 669 | SOAPBOX 670 | 671 | Cemetery 672 | 673 | 674 | 675 | 64.533692 676 | 677 | 5376STREAM 678 | 679 | Bridge 680 | 681 | 682 | 683 | 61.649902 684 | 685 | 5144SUMMIT 686 | 687 | Summit 688 | 689 | 690 | 691 | 67.360800 692 | 693 | 5150TANK 694 | WATER TANK 695 | 696 | Museum 697 | 698 | 699 | 700 | BELLEVUE 701 | 702 | 1 703 | 704 | 23.469600 705 | 706 | BELLEVUE 707 | BELLEVUE 708 | 709 | Parking Area 710 | 711 | 712 | 713 | 26.561890 714 | 715 | GATE6 716 | 717 | Trailhead 718 | 719 | 720 | 721 | 45.307495 722 | 723 | PANTHRCAVE 724 | 725 | Tunnel 726 | 727 | 728 | 729 | 37.616943 730 | 731 | 6014MEADOW 732 | 733 | Dot 734 | 735 | 736 | 737 | 56.388000 738 | 739 | 6006 740 | 741 | Dot 742 | 743 | 744 | 745 | 46.028564 746 | 747 | 6006BLUE 748 | 749 | Dot 750 | 751 | 752 | 753 | 44.826904 754 | 755 | 5096 756 | 757 | Dot 758 | 759 | 760 | 761 | 44.586548 762 | 763 | 5066 764 | 765 | Crossing 766 | 767 | 768 | 769 | 57.607200 770 | 771 | 5067 772 | 773 | Dot 774 | 775 | 776 | 777 | 53.949600 778 | 779 | 5058ROAD 780 | ROAD CROSSING 781 | 782 | Dot 783 | 784 | 785 | 786 | 67.360800 787 | 788 | 5150TANK 789 | WATER TANK 790 | 791 | Museum 792 | 793 | 794 | 795 | 50.594727 796 | 797 | 5142 798 | 799 | Dot 800 | 801 | 802 | 803 | 61.649902 804 | 805 | 5144SUMMIT 806 | 807 | Summit 808 | 809 | 810 | 811 | 127.711200 812 | 813 | 5156 814 | 815 | Dot 816 | 817 | 818 | 819 | 119.809082 820 | 821 | 5148NANEPA 822 | 823 | Trailhead 824 | 825 | 826 | 827 | 74.627442 828 | 829 | 5258 830 | 831 | Dot 832 | 833 | 834 | 835 | 77.992066 836 | 837 | 5252PURPLE 838 | 839 | Summit 840 | 841 | 842 | 843 | 78.713135 844 | 845 | 527631 846 | 847 | Dot 848 | 849 | 850 | 851 | 78.713135 852 | 853 | 527614 854 | 855 | Dot 856 | 857 | 858 | 859 | 73.761600 860 | 861 | 5267OBSTAC 862 | 863 | Amusement Park 864 | 865 | 866 | 867 | 68.275200 868 | 869 | 5278 870 | 871 | Dot 872 | 873 | 874 | 875 | 64.008000 876 | 877 | 5289 878 | 879 | Dot 880 | 881 | 882 | 883 | 52.997925 884 | 885 | 5374FIRE 886 | 887 | Dot 888 | 889 | 890 | 891 | 56.388000 892 | 893 | 5376 894 | 895 | Dot 896 | 897 | 898 | 899 | 64.533692 900 | 901 | 5376STREAM 902 | 903 | Bridge 904 | 905 | 906 | 907 | 53.644800 908 | 909 | 6328 910 | 911 | Dot 912 | 913 | 914 | 915 | 48.768000 916 | 917 | 635722 918 | 919 | Dot 920 | 921 | 922 | 923 | 49.072800 924 | 925 | 635783 926 | 927 | Dot 928 | 929 | 930 | 931 | 62.484000 932 | 933 | 6373 934 | 935 | Dot 936 | 937 | 938 | 939 | 87.782400 940 | 941 | BEAR HILL 942 | BEAR HILL TOWER 943 | 944 | Tall Tower 945 | 946 | 947 | 948 | 72.945191 949 | 950 | 6289 951 | 952 | Dot 953 | 954 | 955 | 956 | 72.847200 957 | 958 | 6297 959 | 960 | Dot 961 | 962 | 963 | 964 | 66.696655 965 | 966 | 6283 967 | 968 | Dot 969 | 970 | 971 | 972 | 57.564209 973 | 974 | 6280 975 | 976 | Dot 977 | 978 | 979 | 980 | 62.179200 981 | 982 | 6177 983 | 984 | Dot 985 | 986 | 987 | 988 | 62.484000 989 | 990 | 6176 991 | 992 | Dot 993 | 994 | 995 | 996 | 62.788800 997 | 998 | 6153 999 | 1000 | Dot 1001 | 1002 | 1003 | 1004 | 55.473600 1005 | 1006 | 6171 1007 | 1008 | Dot 1009 | 1010 | 1011 | 1012 | 64.008000 1013 | 1014 | 6131 1015 | 1016 | Dot 1017 | 1018 | 1019 | 1020 | 64.008000 1021 | 1022 | 6130 1023 | 1024 | Dot 1025 | 1026 | 1027 | 1028 | 56.388000 1029 | 1030 | 6029 1031 | 1032 | Dot 1033 | 1034 | 1035 | 1036 | 56.388000 1037 | 1038 | 6006 1039 | 1040 | Dot 1041 | 1042 | 1043 | 1044 | 37.616943 1045 | 1046 | 6014MEADOW 1047 | 1048 | Dot 1049 | 1050 | 1051 | 1052 | 45.307495 1053 | 1054 | PANTHRCAVE 1055 | 1056 | Tunnel 1057 | 1058 | 1059 | 1060 | 26.561890 1061 | 1062 | GATE6 1063 | 1064 | Trailhead 1065 | 1066 | 1067 | 1068 | 23.469600 1069 | 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 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 |
Feature properties
Property nameProperty value
prop0value0
27 |
28 |
29 | 30 | 31 | 102.00000000 0.50000000 32 | 33 | 34 |
35 | 36 | 37 |
38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 |
Feature properties
Property nameProperty value
prop0value0
prop10.0
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 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 |
Feature properties
Property nameProperty value
prop0value0
prop1{ "this": "that" }
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 | --------------------------------------------------------------------------------