Y-NOT

From 1ste Gimnechiske Wiki

Jump to: navigation, search

I have just started to brainstorm this program. I will add info here as I get it structured.

Contents

Development platform

I will use a Mac OS X 10.5 Leopard on a Macbook Air as the development computer, and therefor I will use Xcode or Revolution as development platform, I will probably mainly use Java, but might add some stuff in Ansi C or Ruby.

Revolution

Revolution is a scripting/programing library with premade tools to make graphical interfaces and interact with programs. The scripts itself can only be run in Revolution viewers, but can be compiled to Linux, Mac and Windows closed binaries. It have full version control

Pros with Revolution

The adventage of Revolution is that it can compule binaries for Linux, Mac and Windows independently of what platform it runs on, that way I can supply working binary releases for all platforms.

Cons with Revolution

The disadventage of Revolution is that it is a commercial product, and a license key is necessary to do any editing on the code, and to compile the project files.

Xcode

Xcode is a collection of development libraries, with dedicated editing tools, covering all aspects in a programming project, from simple editors (with code highlighting), to planning tools to track linking of libraries, internal dependencies and linking of parts of the code. The entire Xcode is a fully complex and professional tool for software development.

Pros with Xcode

The adventage of Xcode is that it is free, and have a wide range of tools, such as syntax highlited editors, GUI builders and project package managers.

The advantage with Xcode is that it supports several programing languages, and works with syntax highlighting. This makes the syntax very readable. It also allows for on the fly compiling and debugging, and makes known compiler errors easily browseable. Also easy to add files, though not so easy to remove links from the trees.

Cons with Xcode

The disadventage with Xcode is that there is no way for me to check if the product can compile and run on other platforms. I have access to Windows and Linux computers, but that will only allow some sporadic testing.

Testing

For extensive testing and help from additional programmers, a svn server and a bug tracking system would be desired. If you think this is an interesting project, and you want to contribute, please contact me, so I can look into svn and bugtracking solutions. I will try to get a pre-beta version as soon as possible (I have started to polish my Java skills, so something might happen soon).

Wanted features

  • Read NMEA data over RS-232, Ethernet, USB, Bluetooth (other)
  • Communicate with various GPS units (directly or via external aids such as GPSbable)
  • Read/Write GPX, KML, OSM XML and other xml based position data sourcers
  • Read raw NMEA files as well as store raw GPS data from connected units as NMEA files.
  • Ignores unknown tags in GPX, KML and other xml based files, allows for non-standard xml such as , decimal separator
  • Developed for cross platform performance
  • Integrate i18n support from first trial/beta version
  • Enable editing of OSM data (full 0.6 support/future 0.7 support)
  • Enable preselecting of tags, including multilingual name tags (name/name:en/name:pt/name:*), configural to the languages you wish to edit.
  • Use overlay from landsat, openaerial, Yahoo! Aerial, slippymap, OpenStreetBugs. Similar to how the updated WMS plugin in JOSM operates, move the map around, and the overlay data get downloaded and updated on the screen. Must be able to set opacity of the overlay data, and a way to ignore data where exceptions are cast (red squares in JOSM).
  • Support SRTM data. Find a way to compress the data, render the curves, rendered curves could be used as overlay if desired. Also find a system to diff various SRTM sources, and choose if interpolation or position adjustment is desired.
  • Configure position correction anchors in all overlay data, so that automatically downloaded overlay data get in the right position.
  • Test routing on source data
  • Export to various binary map formats for usage on other GPS units (Garmin IMG, Polish Format, OSMbin, etc)
  • Use synthetic voice for routing, no need for pre-recorded files
  • Allow different views of maps (2D/3D, horizontal, eagle eye, topographic, flat)
  • Enable Auto-download of data such as OSM, GPX track points, overlay, etc.
  • Manage GPX tracks in blocks, and enable autoload/autounload of such blocks.
  • Check data for errors (and correct them automatically if possible) (Things like duped nodes, self-crossing ways, node more than once in way, ...)
  • Render data to images (export as PNG, JPEG, whatever)
  • Inherit map features from Machine readable Map Feature list
  • Bookmark boundary relations
  • Bookmark bounding box for download of OSM data
  • Allow boundary relations to define download area
  • Import scanned maps and allow for calibration of scanned map images (.tiff)
  • Enable PostGIS support, and other database supports
  • Allow for internal derby (or other) small database for storing editable data (extension of i18n .po files? instead of .po?)
  • Online updates of language files
  • Filter for rendering of names and POIs
  • Make editor understand +/-180degrees, allow true editing across 180 degree, and seamlessly correct positions like 180,01 degrees to -179,99 degrees.
  • Intelligent search, allow searches like "closest McDonalds", "all HSBC with ATM in London", "Easiest route to St. Pauls Cathedral", "what is the distance from Rio de Janeiro to São Paulo", "quickest route from Miami to Los Angeles"
  • Editable routing conditions (vehicle type, - length, - heigth, - width, - weight, ignore speed bumps, etc)
  • When downloading a relation, allow to download surrounding area (100m, 1km, etc)