// SPDX-License-Identifier: MPL-2.0 // Copyright (C) 2014, PCA Peugeot Citro�n, XS Embedded GmbH, TomTom International B.V., Continental Automotive GmbH, BMW Car IT GmbH, Alpine Electronics R&D Europe GmbH, AISIN AW CO., LTD., Neusoft Technology Solutions GmbH, Jaguar Land Rover Limited, Visteon Corporation, Elektrobit Automotive GmbH // This Source Code Form is subject to the terms of the // Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with // this file, you can obtain one at http://mozilla.org/MPL/2.0/. package org.genivi.navigation typeCollection NavigationTypes { version { major 4 minor 0 } <** @description: Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value.**> typedef Handle is UInt32 <** @description: Handle to a location.**> typedef LocationHandle is Handle /* geometric types */ struct Coordinate2D { <** @description: latitude of the current position (according WGS84). Range [-90:+90]. Example: 48.053250 .**> Double latitude <** @description: longitude of the current position (according WGS84). Range [-180:+180]. Example: 8.324500 .**> Double longitude } struct Coordinate3D extends Coordinate2D { <** @description: altitude above the sea level of the current position in meters .**> Double altitude } struct Rectangle { Coordinate2D topLeft Coordinate2D bottomRight } array Polygon of Coordinate2D <** @description: A distance in meters. A distance can be at most half of the earth perimeter (a little less than 20050 km). (see http://www.wolframalpha.com/input/?i=Earth+perimeter) Range[0:20050000] notSpecifiedValue = -1 **> typedef DistanceInMeters is Int32 <** @description: A circle given as center and radius. **> struct Circle { <** @description : The center of the circle.**> Coordinate2D center <** @description : The radius of the circle.**> DistanceInMeters radius } typedef Timestamp is UInt64 /* enumerations */ enumeration BasicEnum { INVALID = 0 ALL = 65535 } enumeration TimeFormat extends BasicEnum{ TWELVEH = 1 TWENTYFOURH = 2 } enumeration SessionStatus extends BasicEnum{ AVAILABLE = 1 NOT_AVAILABLE = 2 } struct Session { Handle sessionHandle String clientApp } enumeration Units { METER = 50 MILE = 51 KM = 52 YARD = 53 FOOT = 54 } struct Locale { <** @description : the language used. ISO 639‐3 language code (lower case)**> String languageCode <** @description : the country specific variant for the language used. ISO 3166‐1 alpha 3 country code (upper case)**> String countryCode <** @description : the script specific variant for the language used. ISO 15924 alpha 4 script code (upper case)**> String scriptCode } }