Google Summer of Code/2010/AcceptedProjects/PointsOfInterestSearch

From OpenStreetMap Wiki
Jump to navigation Jump to search

Project Overview

Title

Point of Interest search and presentation

People

  • Student: Mitja Kleider
  • Mentor: Stefan de Konink

Objectives

The objectives of this project are to provide a collection of tools for POI look-up (by location and/or text search) and presentation (clickable map overlay, human readable list).

Most important part of the project is a high performance, live POI API that can be used by web applications, desktop applications and mobile devices.

Wiki Page

The main wiki page for the project is POI tools. Documentation is provided and linked there.

Weekly Reports

Week -3

Progress Update for Week Ending 2010-05-02.

Achievements this week: create this wiki page

Problems Encountered:

Help Required: hints on good Sphinx tutorials are welcome

Progress Against Plan:

Week -2

Progress Update for Week Ending 2010-05-09.

Achievements this week: chose hardware, read more on MonetDB, began reading Sphinx documentation

Problems Encountered:

Help Required:

Progress Against Plan:

Week -1

Progress Update for Week Ending 2010-05-16.

Achievements this week: hardware arrived, basic setup (no Sphinx support) worked, documented compilation

Problems Encountered: Sphinx search module only available in CVS version, compilation fails

Help Required:

Progress Against Plan: setup should have been ready by now

Week 0

Progress Update for Week Ending 2010-05-23.

Achievements this week: compiling MonetDB from mercurial works, libsphinxclient now linked in Sphinx module, imported Planet, still in the process of applying constraints, updated wiki pages, began scripting for referential integrity checks

Problems Encountered: Sphinx module was not linked against libsphinx; applying constraints takes longer than expected; referential integrity issues in Planet.osm

Help Required:

Progress Against Plan: almost back on schedule, no diff updates


Week 1

Progress Update for Week Ending 2010-05-30.

Achievements this week: I implemented a simple request by bbox,key,value to test lookup speed and the OpenLayers part. Clustering many features (objects) in OpenLayers is not as fast as I was hoping, it might be necessary to have additional WMS-style rendering if there are too many results.

Problems Encountered: could not set up DBSlayer for MonetDB in Cherokee, Stefan is helping out. Updating the data and optimizing lookup speed by sideways cracking are not possible at the same time, I need to find a solution for still having updates.

Help Required:

Progress Against Plan:


Week 2

Progress Update for Week Ending 2010-06-06.

Achievements this week: defined easy-to-use API (probably incomplete), started implementing API, worked on geometry creation, made design decisions, e.g. human readable output will be done in JS to be reused by other projects, static pages generated with Google V8

Problems Encountered: interpolation was not available, found patch

Help Required:

Progress Against Plan:


Week 3

Progress Update for Week Ending 2010-06-13.

Achievements this week: Finished geometry creation (just area vs. closed way is not clear yet). POI queries inside an area (way) or multipolygon (relation) finished.

Problems Encountered:

Help Required:

Progress Against Plan: Behind a bit.


Week 4

Progress Update for Week Ending 2010-06-20.

Achievements this week: DBSlayer is running now! Also worked on human readable output, more work needs to be done there. Tried to get diff updates running.

Problems Encountered: Referential violations for updated entries, need to implement workaround. As a consequence the database will grow when objects are updated, fresh import might be necessary from time to time to make it small again. (Call it manual vacuum.) Still searching for the optimal way for translations in Javascript, will probably just use some jquery i18n module.

Help Required:

Progress Against Plan: Still behind, will be able to catch up soon.


Week 5

Progress Update for Week Ending 2010-06-27.

Achievements this week: worked on import/diff updates, excluding or changing tags, improved list output

Problems Encountered:

Help Required:

Progress Against Plan:

Week 6

Progress Update for Week Ending 2010-07-04.

Achievements this week:

  • added custom geometry support (WKT, WKB)
  • progress on diff updates

Problems Encountered:

  • diff updates for time interval overlapping with existing data fails, filtering currently not possible in the database due to a bug
  • trouble writing ebuild for MonetDB mercurial
  • osmosis ebuild not yet working: java.lang.NoClassDefFoundError: org/java/plugin/PluginLifecycleException
  • need to write V8 ebuild, too
  • How to support geometries that are longer than HTTP GET allows?

Help Required:

  • I have no clue about java plugin problems, if somebody wants to help out, otherwise I will ask osmosis-dev (using binary osmosis in the meantime)


Progress Against Plan:


Week 7

Progress Update for Week Ending 2010-07-11.

Achievements this week: Improved human readable list, fixed multipolygon bug, worked on additional information (resolve associatedStreet relations), organized server for later use (not enough power to serve Planet)

Problems Encountered: MonetDB ebuild still not finished because of multi-package trouble, V8 engine does not accept Wikipedia code in list, how to design spatial index for country, city and other polygons, MonetDB/SQL bug still blocking diff updates

Help Required:

Progress Against Plan: Behind a bit again.

Week 8

Progress Update for Week Ending 2010-07-18.

Achievements this week: wrote MonetDB ebuilds for this week's release, progress on Osmosis ebuild, diff update workaround (not tested yet)

Problems Encountered:

Help Required:

Progress Against Plan:

Week 9

Progress Update for Week Ending 2010-07-25.

Achievements this week:

  • created overlay, added new ebuilds: monetdb-geom, google-v8
  • wrote .osc parser, began database interface

Problems Encountered:

  • two mass-import diff-update workarounds failed, decided to go for slower queries

Help Required:

  • If you know about building Apache commons-compress with Apache Maven, please let me know.
  • Also, if you successfully built pyv8 recently, I am interested.

Progress Against Plan:

  • Decided not to create static lists from the Javascript lists during GSoC, will do that later.
  • Concentrating on proper osmChange import now, thinking about full geometries.
  • Decided to work on Sphinx search later.

Week 10

Progress Update for Week Ending 2010-08-01.

Achievements this week:

  • Diff updates finally working with slower updater
  • Improved mass updater

Problems Encountered:

  • Slower updater is way too slow: 120-240 minutes to update one minute
  • Mass updater still not covering all cases (multiple versions and undiscovered)

Help Required:

Progress Against Plan:

Week 11

Progress Update for Week Ending 2010-08-08.

Achievements this week:

  • Finished mass updater resolving all conflicts in SQL. First tests showed that update time is almost independent of the update interval.
  • Prepared parser for distribution.
  • Added translation support and tag based prefixes to the list example.

Problems Encountered:

  • Data for processing GEOS geometries on the database level is larger than expected.

Help Required:

Progress Against Plan: In time (subprojects scheduled after GSoC).


Week 12

Progress Update for Week Ending 2010-08-15.

Achievements this week:

  • fixed bugs
  • improved documentation
  • added automatic icons

Problems Encountered:

  • response time not scaling well yet, still looking for the cause

Help Required:

Progress Against Plan: Public server not running, waiting for access to it.