Javascript Client for Geeo.io
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
dist
doc
lib
src
.babelrc
.gitignore
LICENSE
README.md
example.html
package.json
webpack.config.js

README.md

What is Geeo.io?

Please read this introduction to understand the fundamentals of Geeo.

Or consult our website geeo.io to learn more about Geeo and how to use it in your apps.

Javascript SDK

geeo-javascript is the open source Javascript Client for Geeo.io, usable from node.js or an HTML5 browser.

You can get it with npm:

$ npm install geeo-javascript

or clone this repository.

Files

geeo-javascript is written with ES6 in the src folder, babelified to ES5 in lib and webpacked and minified in dist.

The node.js module can be used with

const {GeeoWS, GeeoHTTP} = require("geeo-javascript")

If you're writing for browsers, include ./dist/geeo.js or ./dist/geeo.min.js to your webpage. See example.html for a working example.

API

You can find the API docs in the doc folder.

the API at a glance

Note: functions I'm not allowed to use with my token are just ignored by the server.

var wsURL = "wss://demo.geeo.io"
var httpURL = "https://demo.geeo.io"

var geeo = new GeeoWS(wsURL)
var geeoHttp = new GeeoHTTP(httpURL)

geeoHttp.getGuestToken({name: 'chris', age: 45})
.then( function(token) {
	geeo.connect(token)
}).catch(function(error) {
	console.log("Server doesn't allow guest tokens)
})

geeo.on('error', function (error) {
	geeo.close()
})

geeo.on('connect', function() {
	geeo.view.move(0,0,1,1) // lon1 lat1 lon2 lat2 (point1 is SW, point2 is NE)
	geeo.move(0.5, 0.5) // lon lat

	geeo.view.getPosition() // null if not set, [lon1, lat1, lon2, lat2] otherwise
	geeo.getPosition() // null if not set [lon, lat] otherwise
})

geeo.on('viewUpdated', function() {
	geeo.view.pois() // pois in the view
	geeo.view.agents() // agents in the view

	geeo.addPOI({id, [lon, lat], publicData})
	geeo.addAirBeacon({id, [lon1, lat1, lon2, lat2], publicData})
	geeo.removePOI(poi)
	geeo.removeAirBeacon(ab)
})

geeo.view.on('agentEntered', function(agent){})
geeo.view.on('agentMoved', function(agent){})
geeo.view.on('agentLeft', function(agent){})

geeo.view.on('poiEntered', function(poi){})
geeo.view.on('poiMoved', function(poi){})
geeo.view.on('poiLeft', function(poi){})

Not implemented yet in Geeo REST api, coming soon:

geeoHttp.setToken(token) // necessary to use the following features
geeoHttp.createPOI(poi)
geeoHTTP.removePOI(poi)
geeoHttp.createAirBeacon(ab)
geeoHttp.removeAirBeacon(ab)
geeoHttp.view([0,0,1,1]) // returns agents + POIs