mirror of https://github.com/tidwall/tile38.git
Merge branch 'master' into memoptz
This commit is contained in:
commit
025a584903
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
4
build.sh
4
build.sh
|
@ -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
|
||||
|
|
|
@ -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
|
|
@ -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] {
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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).
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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.
|
||||
|
|
Loading…
Reference in New Issue