OpenCellID Client Library
opencellid-client
is a ruby gem that aims at simplifying the usage of the APIs provided by opencellid.org to transform cell IDs into coordinates.
Installing
Simply install the gem to your system
gem install opencellid-client
or if you are using Bundler add it to your gemspec file and run bundle install
.
Usage
First of all require 'opencellid'
in your application.
Read functionality (i.e. methods that only query the database) generally do not require an API key, write methods instead do require an API key, so if you do not have one, head to the OpenCellID website and get one for yourself.
Initialize the main Opencellid object with the API key (if any)
opencellid = Opencellid::Opencellid.new
or
opencellid = Opencellid::Opencellid.new my_key
and then invoke methods on the object just created. The return values of all methods is of type Response
. invoking method
ok?
verifies that the response is a successful one. If the response is successful, method-dependent results can be
got from the response, otherwise an error object can be extracted from the response and the use its code
and info
methods to obtain the error code and human readable description.
Querying Cells
Cells can be queried using a combination of parameters: the cell id, the mnc (operator) and mcc (country) code or the local area code lac. For a more detailed description of these parameters please refere to the OpenCellID site.
Parameters are first set into a Cell
object and then the object is passed to the method. E.g. to query for
the position of the cell with id 123000, mnc 5 and mcc 244
target_cell = Cell.new(123000,244,5,nil response = opencellid.get_cell(target_cell) result_cell = response.cells[0]
similarly to query for the measures related to the same cell
target_cell = Cell.new(123000,244,5,nil response = opencellid.get_cell_measures(target_cell) result_cell = response.cells[0] measures = result.cell.measures
Finally to query for cells in a bounding box, a BBox object must provided. In addition to that, the set of results can
be limited by number, by mcc or by mnc code by specifying respectively the :limit
,:mcc
and :mnc
keys of the options
hash.
To get the first 10 cells belonging to operator whose mnc code is 5 within the bounding box the code is the following
bbox = BBox.new(30.0,40.0,60.0,70.0) response = opencellid.get_cells_in_area(bbox, :limit => 10, :mnc => 5) cells = response.cells
Adding and Deleting Measures
Adding, deleting and listing "own" measures (i.e. measures inserted by the same user) require that an API key is made available to the library at initialization time.
Measure can be added by providing a cell object identifying the cell to which the measure refers to, and a measure containing the actual measure details.
target_cell = Cell.new(123000,244,5,9000) measure = Measure.new(30.0,60.0,Time.now) measure.signal = 15 response = opencellid.add_measure(target_cell,measure)
The response object will contain the cell id and the measure id. Using the measure id it is later on possible to delete the measure, if so desired
`response = opencellid.delete_measure(measure_id)
Measure Ids can also be obtained by listing all the measures belonging to the user whose API key has been provided to the library
response = opencellid.list_measures measures = response.measures
Bulk addition of measures
Bulk addition of measure by uploading a CSV formatted file to the OpenCellID server is not yet supported by this library.