aboutsummaryrefslogtreecommitdiffstats
path: root/README.rst
diff options
context:
space:
mode:
Diffstat (limited to 'README.rst')
-rw-r--r--README.rst105
1 files changed, 105 insertions, 0 deletions
diff --git a/README.rst b/README.rst
new file mode 100644
index 0000000..f9894d1
--- /dev/null
+++ b/README.rst
@@ -0,0 +1,105 @@
+===============
+osm@spline Xapi
+===============
+
+Contact
+============
+http://osm.spline.de
+mailing list: osm@lists.spline.de or xapi@lists.spline.de
+irc: irc://irc.freenode.net/#spline
+
+Aim
+============
+
+We like to rewrite some parts of the XApi needed for our own application. Our
+aim is not get a full implementation of the Xapi, but to answer only specific
+requests, at low latency. For this subset of Xapi we want completly cover the
+original api.
+
+Requests
+=============
+
+This is a list of example requests, we want to optimize.
+
+* xapi.spline.de/api/0.6/node[amenity=*]
+* xapi.spline.de/api/0.6/node[highway=busstop]
+* xapi.spline.de/api/0.6/node[bbox=-6,50,2,61]
+* xapi.spline.de/api/0.6/node[amenity=hospital][bbox=-6,50,2,61]
+
+a more formal description
+-------------------------
+
+We serve the node endpoint, but no others. We implment the tag based filtering,
+for only one tag and a bounding box.
+
+Basic setup
+=============
+
+Just execute bootstrap.sh which will install node and everything you need into
+your local directory. If you don't trust us read the bootstrap.sh. If you have
+node and npm installed you can just use "npm link src/nodejs/" to install all
+the dependencies.
+
+Dependencies
+=============
+
+For dependencies checkout the package.json file. One special case is the node-postgres
+lib. Use a patched version: https://github.com/AlexanderS/node-postgres
+
+If you try the libxml branch make sure you have installed libxml for developers.
+
+Database setup
+=============
+
+We use postgres 9.* with postgis 1.5. Postgres 9.0 is used because we need some
+functions on hstores and postgis 1.5 is used for fancy geometry things.
+
+To setup a database you first need a runing postgres 9.0 instance. I hope you know
+how to do this.
+
+Use
+
+ createdb osm
+
+to create a database with name osm. Use
+
+ createlang plpgsql osm
+
+to add plpgsql to your database. If you want to create a database user do so:
+
+ createuser <username>
+
+Add hstore support for your database:
+
+ psql -d osm < /share/contrib/hstore.sql
+
+Add postgis support for your database:
+
+ psql -d osm < /share/contrib/postgis-1.5/postgis.sql
+
+Just do:
+
+ psql -d osm < /share/contrib/postgis-1.5/spatial_ref_sys.sql
+
+Create the actual schema for osm data. For this step you need osmosis. If your
+osmosis build is correct there should be a directory named pacakge/scripts where
+you run:
+
+ psql -d osm < pgsql_simple_schema_0.6.sql
+ psql -d osm < pgsql_simple_schema_0.6_linestring.sql
+Optional/stil to test:
+
+ psql -d osm < pgsql_simple_schema_0.6_action.sql
+ psql -d osm < pgsql_simple_schema_0.6_bbox.sql
+
+For documentation on the schema read pgsql_simple.txt.
+
+Import data from xml with:
+
+ osmosis --read-xml file="planet.osm.bz2" --wp host="localhost" password="TopSecretPassword" user="insertUserNameHere" database="osm"
+
+Before or after import you may want to create a indexes. Examples below:
+ CREATE INDEX idx_nodes_tags ON nodes USING GIN(tags);
+ CREATE INDEX idx_nodes_tags ON nodes USING GIST(tags);
+ CREATE INDEX idx_ways_tags ON ways USING GIN(tags);
+ CREATE INDEX idx_ways_tags ON ways USING GIST(tags);