/*
* TeleStax, Open Source Cloud Communications Copyright 2012.
* and individual contributors
* by the @authors tag. See the copyright.txt in the distribution for a
* full listing of individual contributors.
*
* This is free software; you can redistribute it and/or modify it
* under the terms of the GNU Lesser General Public License as
* published by the Free Software Foundation; either version 2.1 of
* the License, or (at your option) any later version.
*
* This software is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this software; if not, write to the Free
* Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
* 02110-1301 USA, or see the FSF site: http://www.fsf.org.
*/
package org.mobicents.protocols.ss7.map.api.service.lsm;
import java.io.Serializable;
import org.mobicents.protocols.ss7.map.api.service.mobility.subscriberInformation.TypeOfShape;
/**
*
Ext-GeographicalInformation ::= OCTET STRING (SIZE (1..maxExt-GeographicalInformation)) -- Refers to geographical Information
* defined in 3GPP TS 23.032. -- This is composed of 1 or more octets with an internal structure according to -- 3GPP TS 23.032
* -- Octet 1: Type of shape, only the following shapes in 3GPP TS 23.032 are allowed: -- (a) Ellipsoid point with uncertainty
* circle -- (b) Ellipsoid point with uncertainty ellipse -- (c) Ellipsoid point with altitude and uncertainty ellipsoid -- (d)
* Ellipsoid Arc -- (e) Ellipsoid Point -- Any other value in octet 1 shall be treated as invalid -- Octets 2 to 8 for case (a)
* Ellipsoid point with uncertainty circle -- Degrees of Latitude 3 octets -- Degrees of Longitude 3 octets -- Uncertainty code
* 1 octet -- Octets 2 to 11 for case (b) Ellipsoid point with uncertainty ellipse: -- Degrees of Latitude 3 octets -- Degrees
* of Longitude 3 octets -- Uncertainty semi-major axis 1 octet -- Uncertainty semi-minor axis 1 octet -- Angle of major axis 1
* octet -- Confidence 1 octet -- Octets 2 to 14 for case (c) Ellipsoid point with altitude and uncertainty ellipsoid -- Degrees
* of Latitude 3 octets -- Degrees of Longitude 3 octets -- Altitude 2 octets -- Uncertainty semi-major axis 1 octet --
* Uncertainty semi-minor axis 1 octet -- Angle of major axis 1 octet -- Uncertainty altitude 1 octet -- Confidence 1 octet --
* Octets 2 to 13 for case (d) Ellipsoid Arc -- Degrees of Latitude 3 octets -- Degrees of Longitude 3 octets -- Inner radius 2
* octets -- Uncertainty radius 1 octet -- Offset angle 1 octet -- Included angle 1 octet -- Confidence 1 octet -- Octets 2 to 7
* for case (e) Ellipsoid Point -- Degrees of Latitude 3 octets -- Degrees of Longitude 3 octets
*
* -- -- An Ext-GeographicalInformation parameter comprising more than one octet and -- containing any other shape or an
* incorrect number of octets or coding according -- to 3GPP TS 23.032 shall be treated as invalid data by a receiver. -- -- An
* Ext-GeographicalInformation parameter comprising one octet shall be discarded -- by the receiver if an
* Add-GeographicalInformation parameter is received -- in the same message. -- -- An Ext-GeographicalInformation parameter
* comprising one octet shall be treated as -- invalid data by the receiver if an Add-GeographicalInformation parameter is not
* -- received in the same message.
*
* maxExt-GeographicalInformation INTEGER ::= 20 -- the maximum length allows for further shapes in 3GPP TS 23.032 to be
* included in later -- versions of 3GPP TS 29.002
*
*
* @author sergey vetyutnev
*
*/
public interface ExtGeographicalInformation extends Serializable {
byte[] getData();
TypeOfShape getTypeOfShape();
/**
* @return Latitude value in degrees (-90 ... 90)
*/
double getLatitude();
/**
* @return Longitude value in degrees (-180 ... 180)
*/
double getLongitude();
/**
* @return Uncertainty value in meters
*/
double getUncertainty();
/**
* @return Uncertainty value in meters
*/
double getUncertaintySemiMajorAxis();
/**
* @return Uncertainty value in meters
*/
double getUncertaintySemiMinorAxis();
/**
* @return Angle value in degrees
*/
double getAngleOfMajorAxis();
int getConfidence();
/**
* @return Altitude value in meters
*/
int getAltitude();
/**
* @return Uncertainty value in meters
*/
double getUncertaintyAltitude();
/**
* @return Radius value in meters
*/
int getInnerRadius();
/**
* @return Uncertainty value in meters
*/
double getUncertaintyRadius();
/**
* @return Angle value in degrees
*/
double getOffsetAngle();
/**
* @return Angle value in degrees
*/
double getIncludedAngle();
}