Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/tarantool/gis
A full-featured geospatial extension for Tarantool
https://github.com/tarantool/gis
Last synced: 27 days ago
JSON representation
A full-featured geospatial extension for Tarantool
- Host: GitHub
- URL: https://github.com/tarantool/gis
- Owner: tarantool
- License: other
- Created: 2016-07-03T17:00:51.000Z (over 8 years ago)
- Default Branch: master
- Last Pushed: 2022-10-28T08:55:07.000Z (about 2 years ago)
- Last Synced: 2024-08-04T22:18:37.750Z (4 months ago)
- Language: Lua
- Size: 745 KB
- Stars: 49
- Watchers: 34
- Forks: 5
- Open Issues: 4
-
Metadata Files:
- Readme: README.md
- License: COPYING
Awesome Lists containing this project
- awesome-tarantool - gis - (Packages / Database)
README
Tarantool/GIS
=============**Tarantool/GIS** is a full-featured geospatial extension for
[Tarantool Database]. It's like PostGIS, but for Tarantool.* `Point`, `LineString`, `Polygon`, `MultiPoint`, `GeometryCollection` and
other geometric primitives.
* `Overlaps`, `Contains`, `Touches`, `Distance`, `Length`, `Area` and other
geometric functions.
* Database of more than 5000 spatial reference systems (SRS) and conversion
routines.
* Aims to implement ISO 19125-1:2004 and ISO/IEC 13249-3 standards.
* Full interoperability with ``WKT, WKB and GeoJSON formats.
* Fast **in-memory** spatial indexes using Tarantool's RTREE.[Tarantool Database]: http://tarantool.org/
**Tarantool/GIS** is in an alpha stage. All feautures are documented and
fully covered by unit and functional tests.[![Build Status](https://travis-ci.org/tarantool/gis.png)]
(https://travis-ci.org/tarantool/gis)Example
-------Here is an example how to work with geometric primitives in Tarantool:
gis = require('gis')
gis.install() -- create system tables
-- https://source.opennews.org/en-US/learning/choosing-right-map-projection/
wgs84 = 4326 -- WGS84 World-wide Projection (Lon/Lat)
nationalmap = 2163 -- US National Atlas Equal Area projection (meters)
calif5 = 2770 -- California zone 5 projection (meters)
nevada = gis.Polygon({{
{-120.000000, 42.000000};
{-114.000000, 42.000000};
{-114.000000, 34.687427};
{-120.000000, 39.000000};
{-120.000000, 42.000000};
}}, wgs84)nevada:wkt()
=> "POLYGON ((-120 42, -114 42, -114 34.687427, -120 39, -120 42))"lasvegas = gis.Point({-115.136389, 36.175}, wgs84)
losangeles = gis.Point({-118.25, 34.05}, wgs84)nevada:contains(lasvegas)
=> true
nevada:contains(losangeles)
=> false
line = gis.LineString({lasvegas, losangeles}, wgs84)
line:transform(calif5):length()
=> 368.94277529796 - km
nevada:transform(nationalmap):area() * 1e-6
=> 293496.74070953 -- km^2**Tarantool/GIS** allows to store any kinds of geometric objects in Lua table
and Tarantool spaces, perform kNN, OVERLAPS and other queries using the
high-speed in-memory indexes.Please follow [Getting Started] guide for further instructions.
[Getting Started]: https://tarantool.github.io/gis/getting_started.htmlSee Also
--------* [Documentation](http://tarantool.github.io/gis)
* [Examples](https://github.com/tarantool/gis/tree/master/examples)
* [Tests](https://github.com/tarantool/gis/tree/master/tests)
* [Packages](https://tarantool.org/download.html)
* [Maillist](https://groups.google.com/forum/#!forum/tarantool)
* [Facebook](http://facebook.com/TarantoolDatabase/)
* [email protected]----
**Tarantool/GIS** - manage geographics primitives as a professional with the
speed of Tarantool!