X-Git-Url: https://git.openstreetmap.org./rails.git/blobdiff_plain/07e84496255ebd1d53108894e0fb8ce98b55ccee..cb3992f5a10d821d5015a896771cd34ca068572e:/lib/osm.rb?ds=sidebyside diff --git a/lib/osm.rb b/lib/osm.rb index de5e73d29..bd9351026 100644 --- a/lib/osm.rb +++ b/lib/osm.rb @@ -1,13 +1,6 @@ +# The OSM module provides support functions for OSM. module OSM - # This piece of magic reads a GPX with SAX and spits out - # lat/lng and stuff - # - # This would print every latitude value: - # - # gpx = OSM::GPXImporter.new('somefile.gpx') - # gpx.points {|p| puts p['latitude']} - require 'time' require 'rexml/parsers/sax2parser' require 'rexml/text' @@ -15,11 +8,27 @@ module OSM require 'digest/md5' require 'RMagick' + # The base class for API Errors. + class APIError < RuntimeError + end + + # Raised when an API object is not found. + class APINotFoundError < APIError + end + + # Raised when a precondition to an API action fails sanity check. + class APIPreconditionFailedError < APIError + end + + # Raised when to delete an already-deleted object. + class APIAlreadyDeletedError < APIError + end + + # Helper methods for going to/from mercator and lat/lng. class Mercator include Math #init me with your bounding box and the size of your image - def initialize(min_lat, min_lon, max_lat, max_lon, width, height) xsize = xsheet(max_lon) - xsheet(min_lon) ysize = ysheet(max_lat) - ysheet(min_lat) @@ -62,6 +71,13 @@ module OSM end + # This piece of magic reads a GPX with SAX and spits out + # lat/lng and stuff + # + # This would print every latitude value: + # + # gpx = OSM::GPXImporter.new('somefile.gpx') + # gpx.points {|p| puts p['latitude']} class GPXImporter # FIXME swap REXML for libXML attr_reader :possible_points @@ -279,7 +295,7 @@ module OSM def initialize(feed_title='OpenStreetMap GPS Traces', feed_description='OpenStreetMap GPS Traces', feed_url='http://www.openstreetmap.org/traces/') @doc = XML::Document.new @doc.encoding = 'UTF-8' - + rss = XML::Node.new 'rss' @doc.root = rss rss['version'] = "2.0" @@ -424,4 +440,6 @@ module OSM return "#{tilesql} AND #{prefix}latitude BETWEEN #{minlat} AND #{maxlat} AND #{prefix}longitude BETWEEN #{minlon} AND #{maxlon}" end + + end