Places and coordinates (v2.1.x - Android)
Coordinates
Geo locations in Navmii SDK are represented as instances of the read-only MapCoordinates
class. It has three methods: getLatitude
(returns values in the range [-90, 90]), getLongitude
(returns values in the range [-180, 180)) and getDistanceTo
.
getDistanceTo
calculates the distance between the current point and a specified point, returning the result in meters. This method computes the geographical distance using the latitude and longitude values provided in the MapCoordinates
object.
Example:
// New York City coordinates MapCoordinates destination = new MapCoordinates(40.7128, -74.0060); double distance = currentLocation.getDistanceTo(destination); System.out.println("Distance: " + distance + " meters");
Navmii SDK also has the MapRectangle
class representing a rectangle area on the map. It can be created by specifying its top left and bottom right corners.
// Creates a MapRectangle by specifying top left and bottom right corners MapCoordinates topLeft = new MapCoordinates(51.50884, -0.12924); MapCoordinates bottomRight = new MapCoordinates(51.50754, -0.12699); MapRectangle rectangle = new MapRectangle(topLeft, bottomRight);
Places
Navmii SDK provides a set of classes responsible for representation of addresses an places of interest (POIs). The most basic classes to represent geographical entities are City
, State
, and Country
. City
contains the following information on a city:
- name
- transliterated name
- city class (an integer taking values from -1 to 15 and representing the size of the city)
- if the city is a capital
Log.i("City", String.format("city name - %s", city.getName())); Log.i("City", String.format("transliterated city name - %s", city.getTransliteratedName())); Log.i("City", String.format("city class - %s", city.getCityClass())); Log.i("City", String.format("is capital - %s", city.isCapital()));
You can retrieve a state's
- code
- name
from State
.
Log.i("State", String.format("state name - %s", state.getName())); Log.i("State", String.format("state code - %s", state.getCode()));
And from Country
you can fetch:
- ISO 3 Code
- name
- extended info
Extended info for a Country
is a CountryInfo
instance containing in its turn the following information:
- country's speed units
- country's distance units
- country's driving side
Log.i("Country", String.format("country ISO 3 code - %s", country.getIso3Code())); Log.i("Country", String.format("country name - %s", country.getName())); Log.i("Country", String.format("country speed units - %s", country.getInfo().getSpeedUnits())); Log.i("Country", String.format("country distance units - %s", country.getInfo().getDistanceUnits())); Log.i("Country", String.format("country driving side - %s", country.getInfo().getDrivingSide()));
Addresses
The City
, State
and Country
classes are aggregated into Address
class. The Address
also provides:
- county name
- district name
- administrative hierarchy
- street name
- route number
- house number
Log.i("Address", String.format("country name - %s", address.getCountry().getName())); Log.i("Address", String.format("state name - %s", address.getState().getName())); Log.i("Address", String.format("district name - %s", address.getDistrict())); Log.i("Address", String.format("county name - %s", address.getCounty())); Log.i("Address", String.format("city name - %s", address.getCity().getName())); Log.i("Address", String.format("administrative hierarchy - %s", address.getAdminHierarchy())); Log.i("Address", String.format("street name - %s", address.getStreet())); Log.i("Address", String.format("route number - %s", address.getRouteNumber())); Log.i("Address", String.format("house number - %s", address.getHouseNumber()));
Places of Interest
When working with Navmii SDK search services you will also meet Place
instances. They represent places of interest (POIs). A Place
instance can provide you with the following info:
- POI's name
- place type
- geographical location
- POI's address
- a boolean value indicating if the address is approximated
- POI data
POI data for a particular place is a PoiData
instance containing an integer indicating the place's primary category number and an array with numbers of all categories associated with the place.
Log.i("Place", String.format("place name - %s", place.getName())); Log.i("Place", String.format("place type - %s", place.getType())); Log.i("Place", String.format("coordinates - %s", place.getCoordinates())); Log.i("Place", String.format("address - %s, %s", place.getAddress().getStreet(), place.getAddress().getHouseNumber())); Log.i("Place", String.format("is address approximated - %s", place.isAddressApproximated())); Log.i("Place", String.format("POI category - %s", place.getPoiData().getPrimaryCategory())); for (int category : place.getPoiData().getCategories()) { Log.i("Place", "POI belongs to category " + category); }
Images
A place can have a set of images associated with it. To access them you can use Place.getImages()
method, which returns an array of PlaceImage
objects containing the following fields:
- image URL
- thumbnail URL (optional)
- image description (optional)