class Geon::WikimapiaApi

Public Class Methods

new(downloader, service_key, param = {}) click to toggle source

@param [Geon::HttpLoader] downloader @param [String] service_key @param [Hash] param

# File lib/geon/wikimapia_api.rb, line 11
def initialize(downloader, service_key, param = {})
  @downloader, @service_key = downloader, service_key

  @general_param = {
      key:    @service_key,
      format: 'json'
  }.merge(param)

end

Public Instance Methods

api_getlanguages() click to toggle source
# File lib/geon/wikimapia_api.rb, line 53
def api_getlanguages
  request 'api.getlanguages'
end
category_getall(page = 1, count = 50) click to toggle source

50 categories by page

# File lib/geon/wikimapia_api.rb, line 49
def category_getall(page = 1, count = 50)
  request 'category.getall', {page: page, count: count}
end
category_getbyid(id) click to toggle source
# File lib/geon/wikimapia_api.rb, line 44
def category_getbyid(id)
  request 'category.getbyid', {id: id}
end
place_getbyarea(lon_min, lat_min, lon_max, lat_max) click to toggle source
# File lib/geon/wikimapia_api.rb, line 36
def place_getbyarea(lon_min, lat_min, lon_max, lat_max)
  request 'place.getbyarea', {lon_min: lon_min, lat_min: lat_min, lon_max: lon_max, lat_max: lat_max}
end
place_getbyid(id) click to toggle source
# File lib/geon/wikimapia_api.rb, line 32
def place_getbyid(id)
  request 'place.getbyid', {id: id}
end
place_getnearest(lat, lon) click to toggle source

@example place_getnearest(55.753141,37.625299) #Red square

# File lib/geon/wikimapia_api.rb, line 24
def place_getnearest(lat, lon)
  request 'place.getnearest', {lat: lat, lon: lon}
end
street_getbyid(id) click to toggle source
# File lib/geon/wikimapia_api.rb, line 40
def street_getbyid(id)
  request 'street.getbyid', {id: id}
end

Protected Instance Methods

check_response(response) click to toggle source
# File lib/geon/wikimapia_api.rb, line 71
def check_response(response)
  if response['debug'] && response['debug']['code']
    case response['debug']['code'].to_i
      when 1000
        raise InvalidKeyError
      else
        raise WikimapiaError.new(response['debug']['message']) if response['debug']['message']
        raise WikimapiaError.new('Wikimapia: unknown error')
    end

  end
end
request(function, local_param = {}) click to toggle source
# File lib/geon/wikimapia_api.rb, line 60
def request(function, local_param = {})
  param            = @general_param.merge local_param
  param[:function] = function

  response = @downloader.get '/', param
  result   = JSON.parse(CGI::unescape response)
  check_response(result)
  result
end