mirror of https://github.com/tidwall/tile38.git
information about object types
This commit is contained in:
parent
f38bb9892f
commit
0ccac574f4
45
README.md
45
README.md
|
@ -11,6 +11,7 @@ Tile38 is an open source (MIT licensed), in-memory geolocation data store, spati
|
||||||
- Spatial index with [search](#searching) methods such as Nearby, Within, and Intersects.
|
- Spatial index with [search](#searching) methods such as Nearby, Within, and Intersects.
|
||||||
- Realtime [geofencing](#geofencing).
|
- Realtime [geofencing](#geofencing).
|
||||||
- Variety of client protocols, including [http](#http) (curl), [websockets](#websockets), [telnet](#telnet), and a [native interface](#native-interface).
|
- Variety of client protocols, including [http](#http) (curl), [websockets](#websockets), [telnet](#telnet), and a [native interface](#native-interface).
|
||||||
|
- Multiple object types including [lat/lon point](#latlon-point), [bounding box](#bounding-box), [Geohash](#geohash), [GeoJSON](#geojson), [QuadKey](#quadkey), and [XYZ tile](#xyz-tile).
|
||||||
- Server responses are in json.
|
- Server responses are in json.
|
||||||
- Full [command line interface](#cli).
|
- Full [command line interface](#cli).
|
||||||
- Leader / follower [replication](#replication).
|
- Leader / follower [replication](#replication).
|
||||||
|
@ -160,6 +161,50 @@ The `detect` may be `enter | exit | cross`.
|
||||||
- `exit` is when an object that **was** previously in the fence has exited the area.
|
- `exit` is when an object that **was** previously in the fence has exited the area.
|
||||||
- `cross` is when an object that **was not** previously in the fence has entered and exited the area.
|
- `cross` is when an object that **was not** previously in the fence has entered and exited the area.
|
||||||
|
|
||||||
|
## Object types
|
||||||
|
|
||||||
|
All object types except for XYZ Tiles and QuadKeys can be stored in a collection. XYZ Tiles and QuadKeys are reserved for the SEARCH keyword only.
|
||||||
|
|
||||||
|
### Lat/lon point
|
||||||
|
The most basic object type is a point that is composed of a latitude and a longitude. There is an optional `z` member that may be used for auxilary data such as elevation or a timestamp.
|
||||||
|
```
|
||||||
|
set fleet truck1 point 33.5123 -112.2693 # plain lat/lon
|
||||||
|
set fleet truck1 point 33.5123 -112.2693 225 # lat/lon with z member
|
||||||
|
```
|
||||||
|
|
||||||
|
### Bounding box
|
||||||
|
A bounding box consists of two points. The first being the southwestern most point and the second is the northeastern most point.
|
||||||
|
```
|
||||||
|
set fleet truck1 bounds 30 -110 40 -100
|
||||||
|
```
|
||||||
|
### Geohash
|
||||||
|
A [geohash](https://en.wikipedia.org/wiki/Geohash) is a string respresentation of a point. With the length of the string indicating the precision of the point.
|
||||||
|
```
|
||||||
|
set fleet truck1 hash 9tbnthxzr # this would be equivlent to 'point 33.5123 -112.2693'
|
||||||
|
```
|
||||||
|
|
||||||
|
### GeoJSON
|
||||||
|
[GeoJSON](http://geojson.org/) is an industry standard format for representing a variety of object types including a point, multipoint, linestring, multilinestring, polygon, multipolygon, geometrycollection, feature, and featurecollection. Tile38 supports all of the standards with these exceptions.
|
||||||
|
|
||||||
|
1. The `crs` member is not supported and will be ignored. The CRS84/WGS84 projection is assumed.
|
||||||
|
2. Any member that is not recognized (including `crs`) will be ignored.
|
||||||
|
3. All coordinates can be 2 or 3 axes. Less than 2 axes or more than 3 will result in a parsing error.
|
||||||
|
|
||||||
|
<i>* All ignored members will not persist.</i>
|
||||||
|
|
||||||
|
**Important to note that all coordinates are in Longitude, Latitude order.**
|
||||||
|
|
||||||
|
```
|
||||||
|
set city tempe object {"type":"Polygon","coordinates":[[[0,0],[10,10],[10,0],[0,0]]]}
|
||||||
|
```
|
||||||
|
|
||||||
|
### XYZ Tile
|
||||||
|
An XYZ tile is rectangle bounding area on earth that is represented by an X, Y coordinate and a Z (zoom) level.
|
||||||
|
Check out [maptiler.org](http://www.maptiler.org/google-maps-coordinates-tile-bounds-projection/) for an interactive example.
|
||||||
|
|
||||||
|
### QuadKey Tile
|
||||||
|
A QuadKey used the same coordinate system as an XYZ tile except that the string representation is a string characters composed of 0, 1, 2, or 3. For a detailed explanation checkout [The Bing Maps Tile System](https://msdn.microsoft.com/en-us/library/bb259689.aspx).
|
||||||
|
|
||||||
|
|
||||||
## Network protocols
|
## Network protocols
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue