Merge branch 'master' into memoptz

This commit is contained in:
Josh Baker 2016-11-17 09:41:02 -07:00
commit 025a584903
10 changed files with 17 additions and 13 deletions

View File

@ -2,6 +2,10 @@
All notable changes to this project will be documented in this file.
This project adheres to [Semantic Versioning](http://semver.org/).
## [1.5.4] - 2016-11-17
### Fixed
- #84: Hotfix - roaming fence deadlock
## [1.5.3] - 2016-11-16
### Added
- #4: Official docker support

View File

@ -5,7 +5,7 @@
</p>
<p align="center">
<a href="https://travis-ci.org/tidwall/tile38"><img src="https://travis-ci.org/tidwall/tile38.svg?branch=master" alt="Build Status"></a>
<a href="https://github.com/tidwall/tile38/releases"><img src="https://img.shields.io/badge/version-1.5.3-green.svg" alt="Version"></a>
<a href="https://github.com/tidwall/tile38/releases"><img src="https://img.shields.io/badge/version-1.5.4-green.svg" alt="Version"></a>
</p>
Tile38 is an open source (MIT licensed), in-memory geolocation data store, spatial index, and realtime geofence. It supports a variety of object types including lat/lon points, bounding boxes, XYZ tiles, Geohashes, and GeoJSON.
@ -26,7 +26,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.
- Realtime [geofencing](#geofencing) through persistent sockets or [webhooks](http://tile38.com/commands/sethook).
- Object types of [lat/lon](#latlon-point), [bbox](#bounding-box), [Geohash](#geohash), [GeoJSON](#geojson), [QuadKey](#quadkey), and [XYZ tile](#xyz-tile).
- Support for lots of [Clients Libraries](#client-libraries) written in many different langauges.
- Support for lots of [Clients Libraries](#client-libraries) written in many different languages.
- Variety of protocols, including [http](#http) (curl), [websockets](#websockets), [telnet](#telnet), and the [Redis RESP](http://redis.io/topics/protocol).
- Server responses are [RESP](http://redis.io/topics/protocol) or [JSON](http://www.json.org).
- Full [command line interface](#cli).
@ -203,7 +203,7 @@ The `detect` may be one of the following values.
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.
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 auxiliary 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

View File

@ -1,7 +1,7 @@
#!/bin/bash
set -e
VERSION="1.5.3"
VERSION="1.5.4"
PROTECTED_MODE="no"
# Hardcode some values to the core package
@ -83,6 +83,8 @@ package(){
mv tile38-cli packages/$bdir
fi
cp README.md packages/$bdir
cp CHANGELOG.md packages/$bdir
cp LICENSE packages/$bdir
cd packages
if [ "$2" == "linux" ]; then
tar -zcf $bdir.tar.gz $bdir

View File

@ -56,7 +56,7 @@ func main(){
}()
time.Sleep(time.Second / 2) // wait a moment
// Retreive the point we just set.
// Retrieve the point we just set.
go func() {
conn, err := pool.Get() // get a conn from the pool
if err != nil {
@ -71,4 +71,4 @@ func main(){
}()
time.Sleep(time.Second / 2) // wait a moment
}
```
```:q

View File

@ -48,7 +48,7 @@ func TileXYToBounds(tileX, tileY int64, levelOfDetail uint64) (minLat, minLon, m
return
}
// QuadKeyToBounds convers a quadkey to bounds
// QuadKeyToBounds converts a quadkey to bounds
func QuadKeyToBounds(quadkey string) (minLat, minLon, maxLat, maxLon float64, err error) {
for i := 0; i < len(quadkey); i++ {
switch quadkey[i] {

View File

@ -190,8 +190,6 @@ func fenceMatchObject(fence *liveFenceSwitches, obj geojson.Object) bool {
}
func fenceMatchRoam(c *Controller, fence *liveFenceSwitches, tkey, tid string, obj geojson.Object) (keys, ids []string, meterss []float64) {
c.mu.RLock()
defer c.mu.RUnlock()
col := c.getCol(fence.roam.key)
if col == nil {
return

View File

@ -1,6 +1,6 @@
FROM alpine:3.4
ENV TILE38_VERSION 1.5.3
ENV TILE38_VERSION 1.5.4
ENV TILE38_DOWNLOAD_URL https://github.com/tidwall/tile38/releases/download/$TILE38_VERSION/tile38-$TILE38_VERSION-linux-amd64.tar.gz
RUN addgroup -S tile38 && adduser -S -G tile38 tile38

View File

@ -9,7 +9,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.
- Realtime [geofencing](#geofencing) through persistent sockets or [webhooks](http://tile38.com/commands/sethook).
- Object types of [lat/lon](#latlon-point), [bbox](#bounding-box), [Geohash](#geohash), [GeoJSON](#geojson), [QuadKey](#quadkey), and [XYZ tile](#xyz-tile).
- Support for lots of [Clients Libraries](#client-libraries) written in many different langauges.
- Support for lots of [Clients Libraries](#client-libraries) written in many different languages.
- Variety of protocols, including [http](#http) (curl), [websockets](#websockets), [telnet](#telnet), and the [Redis RESP](http://redis.io/topics/protocol).
- Server responses are [RESP](http://redis.io/topics/protocol) or [JSON](http://www.json.org).
- Full [command line interface](#cli).

View File

@ -77,7 +77,7 @@ type Object interface {
CalculatedPoint() Position
// JSON is the json representation of the object. This might not be exactly the same as the original.
JSON() string
// String returns a string represenation of the object. This may be JSON or something else.
// String returns a string representation of the object. This may be JSON or something else.
String() string
// PositionCount return the number of coordinates.
PositionCount() int

View File

@ -320,7 +320,7 @@ func d3disconnectBranch(node *d3nodeT, index int) {
}
// Pick a branch. Pick the one that will need the smallest increase
// in area to accomodate the new rectangle. This will result in the
// in area to accommodate the new rectangle. This will result in the
// least total area for the covering rectangles in the current node.
// In case of a tie, pick the one which was smaller before, to get
// the best resolution when searching.