行侠何须仗名剑,我自成佛不读经!

不求闻达于网络,但求恭耕于博客;记蒜皮之小事,积程序之点滴,学编程之道,做厚道之人。
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

中国联通SPACCESS接口规范(续)

Posted on 2006-04-24 22:29  中原  阅读(603)  评论(0)    收藏  举报
 

例子

<DRR>

<POILocation>

<WithinDistance>

<POI ID="1">

<POIAttributeList>

<POIInfoList>

<POIInfo name="POI Name" value="My Hotel"/>

</POIInfoList>

</POIAttributeList>

</POI>

<MaximumDistance value="500"/>

</WithinDistance>

</POILocation>

<POIProperties directoryType="Yellow Pages">

<POIProperty name="NAICS_type" value="Restaurant"/>

<POIProperty name="NAICS_subType" value="Chinese"/>

</POIProperties>

</DRR>

 

1.1.1          目录服务应答(DRA

<!ELEMENT DRA (POIContext*)>

<!ELEMENT POIContext (POI, Distance?)>

例子:

<DRA>

<POIContext>

<POI ID="1">

<POIAttributeList>

<POIInfoList>

<POIInfo name="POI Name" value="Red Dragon Chinese Restaurant"/>

</POIInfoList>

</POIAttributeList>

</POI>

<Distance value = 300 />

</POIContext>

</DRA>

 

1.2         路径搜索(Route

1.2.1          路径搜索请求(RTR)

<!ELEMENT RTR ((RouteHandle | RoutePlan), RouteInstructionsRequest?, RouteGeometryRequest?, RouteMapRequest?)>

<!ATTLIST RTR

provideRouteHandle CDATA #IMPLIED

distanceUnit (KM | M | DM | MI | YD | FT) #IMPLIED

<!ELEMENT RoutePlan (RoutePreference|BusRoutePreference, WayPointList, AvoidList?)>

<!ATTLIST RoutePlan

useRealTimeTraffic CDATA #IMPLIED

expectedStartTime CDATA #IMPLIED

<!ELEMENT RoutePreference (#PCDATA)>

<!ELEMENT BusRoutePreference (#PCDATA)>

<!ELEMENT WayPointList (StartPoint, ViaPoint*, EndPoint)>

<!ATTLIST WayPointList

IsOrder (Y|N) #IMPLIED <!--“Y”表示有序,“N”表示无序,缺省为有序 -->

> 

<!ELEMENT StartPoint ((Address | POI | Position), GeocodeMatchCode?)>

<!ATTLIST StartPoint

    stop CDATA #IMPLIED

<!ELEMENT ViaPoint ((Address | POI | Position), GeocodeMatchCode?)>

<!ATTLIST ViaPoint

    stop CDATA #IMPLIED

<!ELEMENT EndPoint ((Address | POI | Position), GeocodeMatchCode?)>

<!ATTLIST EndPoint

    stop CDATA #IMPLIED

<!ELEMENT AvoidList (AOI*, Location*, AvoidFeature*)>

<!ELEMENT Location (Address | POI | Position)>

<!ELEMENT AvoidFeature (#PCDATA)>

<!ELEMENT RouteInstructionsRequest EMPTY>

<!ATTLIST RouteInstructionsRequest

format CDATA #IMPLIED

distanceUnit (KM | M | DM | MI | YD | FT) #IMPLIED

<!ELEMENT RouteGeometryRequest (BoundingBox?)>

<!ATTLIST RouteGeometryRequest

scale CDATA #IMPLIED

provideStartingPortion CDATA #IMPLIED

maxPoints CDATA #IMPLIED

<!ELEMENT RouteMapRequest (Output+)>

 

例子

<RTR>

<RoutePlan>

<RoutePreference>Fastest</RoutePreference>

<WayPointList>

<StartPoint>

<Address addressee=" UNICOM " countryCode="CN">

<freeFormAddress>

133 Xi Dan Bei Da Jie, Xi Cheng BeiJing

</freeFormAddress>

</Address>

</StartPoint>

<EndPoint>

<Address addressee="Navigation Technologies" countryCode="CN">

<freeFormAddress>

380 Hongshan Street , Wuhan Huibei

</freeFormAddress>

</Address>

</EndPoint>

</WayPointList>

</RoutePlan>

</RTR>

 

1.2.2          路径搜索应答(RTA)

<!ELEMENT RTA ( RouteHandle?, RouteSummary, RouteGeometry?, RouteInstructionsList?, RouteMap*)>

<!ELEMENT RouteMap (Content, (BBoxContext | CenterContext))?>

<!ELEMENT RouteInstructionsList (RouteInstruction+)>

<!ATTLIST RouteInstructionsList

format CDATA #IMPLIED

lang CDATA #REQUIRED

<!ELEMENT RouteInstruction (#PCDATA)>

<!ELEMENT RouteSummary (TotalTime, TotalDistance, TotalCost, BoundingBox)>

<!ELEMENT TotalTime (#PCDATA)>

<!ELEMENT TotalDistance EMPTY>

<!ATTLIST TotalDistance

value CDATA #REQUIRED

accuracy CDATA #IMPLIED

uom (KM | M | DM | MI | YD | FT) #IMPLIED

<!--RTR中包含RoutePreferenceTotalCost为可选 -->

 

<!ELEMENT TotalCost (#PCDATA)>

<!ELEMENT BoundingBox ((pos+))>

<!ATTLIST BoundingBox

id ID #IMPLIED

srsName CDATA #IMPLIED

 

例子

<RTA>

<RouteSummary>

<TotalTime> 600</TotalTime>

<TotalDistance value = "10" uom = "km"></TotalDistance>

<BoundingBox id=”1”>

<pos>116.342 40.234</pos>

<pos>116.123 40.031 </pos>

</BoundingBox>

</RouteSummary>

<RouteInstructionList>

<RouteInstruction>

go straight along South Street of ZhongGuanCun, and turn left at Bridge BaiShi

</RouteInstruction>

<RouteInstruction>

go straight, and turn right at XiZhiMen

</RouteInstruction>

</RouteInstructionList>

</RTA>

 

1.3         地理编码(Geocode

1.3.1          地理编码请求(GCR)

<!ELEMENT GCR (Address+)>

例子

<GCR>

<Address addressee="Navigation Technologies" countryCode="CN">

<StreetAddress>

<Building number="222" subdivision="Suite 900"/>

<Street officialName="Merchandise Mart" typeSuffix="Plaza"/>

</StreetAddress>

<Place type="Municipality">Wuhan</Place>

<Place type="MunicipalitySubdivision">Hongshan</Place>

<Place type="CountrySubdivision">Hubei</Place>

<Place type="Country">China</Place>

<PostalCode>430074</PostalCode>

</Address>

</GCR>

 

1.3.2          地理编码应答(GCA)

<!ELEMENT GCA (GeocodeResponseList+)>

<!ELEMENT GeocodeResponseList (GeocodedAddress+)>

<!ATTLIST GeocodeResponseList

numberOfAddresses CDATA #REQUIRED>

<!ELEMENT GeocodedAddress (Point, Address, GeocodeMatchCode?)>

 

<!ELEMENT GeocodeMatchCode EMPTY>

<!ATTLIST GeocodeMatchCode

accuracy CDATA #IMPLIED

matchType CDATA #IMPLIED>

例子

<GCA>

<GeocodeResponseList numberOfAddresses ="1">

<GeocodedAddress>

<Point>

<pos>116.342 40.234</pos>

</Point>

</GeocodedAddress>

</GeocodeResponseList>

</GCA>

 

1.4       逆地理编码(ReverseGeocode

1.4.1          逆地理编码请求(RGR)

<!ELEMENT RGR (Position, ReverseGeocodePreference*, SearchArea?)>

<!ELEMENT ReverseGeocodePreference (#PCDATA)>

<!ELEMENT SearchArea (AOI?)>

 

例子

<RGR>

<Position>

<Point>

<pos>116.342 40.234</pos>

</Point>

</Position>

</RGR>

 

1.4.2          逆地理编码应答(RGA)

<!ELEMENT RGA (ReverseGeocodedLocation*)>

<!ELEMENT ReverseGeocodedLocation (Point, Address, SearchCentreDistance?)>

<!ELEMENT SearchCentreDistance EMPTY>

<!ATTLIST SearchCentreDistance

value CDATA #REQUIRED

accuracy CDATA #IMPLIED

uom (KM | M | DM | MI | YD | FT) #IMPLIED

 

例子

<RGA>

<ReverseGeocodedLocation>

<Point>

<pos>116.342 40.234</pos>

</Point>

<Address addressee="Navigation Technologies" countryCode="CN">

<freeFormAddress>

222 Merchandise Mart Plaza, Suite 900 Hongshan, Wuhan 430074

</freeFormAddress>

</Address>

</ReverseGeocodedLocation>

</RGA>

 

1.5         测算(Cogo

1.5.1          测算请求(CGR

 

<!ELEMENT CGR (ReqCalculation+)>

<!ELEMENT ReqCalculation(PointToPointDistance| PointInGeometry | Linebuffer)>

<!ATTLIST ReqCalculation

ID CDATA #REQUIRED>

<!ELEMENT PointToPointDistance (Point, Point)>

<!ATTLIST PointToPointDistance

DistanceType (spherical | cartesian) #IMPLIED

DistanceUnit (KM | M | DM | MI | YD | FT) #IMPLIED

<!ELEMENT PointInGeometry (Point,(Polygon | | Ellipse))>

<!ATTLIST PointInGeometry

Tolerance CDATA #IMPLIED

 

<!ELEMENT Linebuffer(Point, LineString, Distance)>

<!—Distance用来表示Buffer的半径 -->

 

例子:

<CGR >

<ReqCalculation ID="7">

<PointInGeometry Tolerance="0.01">

<Point>

<pos>-3.00 5.00</pos>

</Point>

<Polygon>

<exterior>

<LinearRing>

<pos>-0.00 0.00 –10.00 10.00 10.00 50.00 50.00 10.00 30.00 0.00</pos>

<LinearRing>

</exterior>

</Polygon>

</PointInGeometry>

</ReqCalculation>

<ReqCalculation ID="67">

<PointToPointDistance DistanceUnit="M" DistanceType="spherical">

<Point>

<pos>-5.00 5.00<pos>

</Point>

<Point>

<pos>-25.00 –10.00</pos>

</Point>

</PointToPointDistance>

</ReqCalculation>

</CGR>

 

1.5.2          测算应答(CGA)

<!ELEMENT CGA (ResCalculation+)>

<!ELEMENT ResCalculation (Distance | Containment)>

<!ATTLIST ResCalculation

ID CDATA #REQUIRED>

<!ELEMENT Containment(#PCDATA)>

例子:

<CGA>

<ResCalculation ID="7">

<Containment>inside </Containment>

</ResCalculation>

<ResCalculation ID="67">

<Distance value=17.49 uom="KM" />

</ResCalculation>

</CGA>

 

1.6         元数据(MetaData

1.6.1          元数据请求(MDR

<!ELEMENT MDR EMPTY>

例子:

<MDR>

</MDR>

 

1.6.2          元数据应答(MDA

<!ELEMENT MDA (Service+)>

<!ELEMENTService(Mapping|VectorMapping|Directory|Route|Geocode|ReverseGeoCode|Cogo)>

<!ATTLIST Service

Id ID #REQUIRED

 

<!ELEMENT Mapping( AvailableSRS, AvailableLayers, AvailableFormats, AvailableStyles)>

<!ELEMENT AvailableSRS (SRS+)>

<!ELEMENT AvailableLayers (Layer+)>

<!ELEMENT AvailableFormats (Format+)>

<!ELEMENT AvailableStyles (Style+)>

<!ELEMENT SRS (#PCDATA)>

<!ELEMENT Format (#PCDATA)>

 

<!ELEMENT VectorMapping (VectorDataInfo*)>

<!ELEMENT VectorDataInfo (#PCDATA)>

<!ATTLIST VectorDataInfo

 format CDATA #REQUIRED

 

<!ELEMENT Directory(AvailablePOI, AvailablePlace)>

<!ELEMENT AvailablePOIs (POIDesc*)>

<!ELEMENT POIDesc (POIPropertyName*)>

<!ATTLIST POIDesc

   ICS CDATA #REQUIRED

   type CDATA #IMPLIED

   subtype CDATA #IMPLIED

   category CDATA #REQUIRED

<!ELEMENT POIPropertyName (#PCDATA)>

 

<!ELEMENT AvailablePlaces ((Province|Municipality)*)>

<!ELEMENT Province ((ProvinceSubdivision|Municipality)*)>

<!ATTLIST Province

         name CDATA #REQUIRED

<!ELEMENT Municipality (MunicipalitySubdivision*)>

<!ATTLIST Municipality

        name CDATA #REQUIRED

<!ELEMENT ProvinceSubdivision (#PCDATA)>

<!ELEMENT MunicipalitySubdivision (#PCDATA)>

 

 

<!ELEMENT Route EMPTY>

<!ELEMENT Geocode EMPTY>

<!ELEMENT ReverseGeocode EMPTY>

<!ELEMENT Cogo EMPTY>

 

例子

<MDA>

<Service id=”01”>

<Mapping>

<AvailableSRS>

……

</AvailableSRS>

<AvailableLayers>

……

</AvailableLayers>

<AvailableFormats>

<Format>png<Format>

<Format>jpeg<Format>

<Format>gif<Format>

</AvailableFormats>

<AvailableSytles>

……

</AvailableSytles>

</Mapping>

</Service>

<Service id=”02”>

<Directory>

<AvailablePOIs>

<POIDesc ICS=”CUCS” type=”动物园” category=”娱乐”/>

<POIDesc ICS=”CUCS” type=”银行” subtype=”工商银行” category=”商业”/>

……

</AvailablePOIs>

<AvailablePlaces>

<Province name=”Hubei”>

<ProvinceSubdivision>Xiangfan</ProvinceSubdivision>

<ProvinceSubdivision>YiChang</ProvinceSubdivision>

<ProvinceSubdivision>Huangshi</ProvinceSubdivision>

<Municipality name=”Wuhan”>

<MunicipalitySubdivision >WuChang</MunicipalitySubdivision>

<MunicipalitySubdivision >Hankou</MunicipalitySubdivision>

<MunicipalitySubdivision >Hanyang</MunicipalitySubdivision>

<MunicipalitySubdivision >Hongshan</MunicipalitySubdivision >

</Municipality >

</Province>

</AvailablePlaces>

</Directory>

</Service>

<Service id=”03”>

<Route>

</Route>

</Service>

……..

<MDA>

1.7         公用元素的DTD

1.7.1        GEOMETRY

几何对象元素,用于描述各种类型的点、线、面。

 

<!ELEMENT pos (#PCDATA)>

<!ATTLIST pos

    srsName CDATA #IMPLIED

    dimension CDATA #IMPLIED

<!ELEMENT Point ((pos))>

<!ATTLIST Point

id ID #IMPLIED

srsName CDATA #IMPLIED

<!ELEMENT LineString (pos)>

<!ATTLIST LineString

id ID #IMPLIED

srsName CDATA #IMPLIED

<!ELEMENT Polygon (exterior?, interior*)>

<!ATTLIST Polygon

id ID #IMPLIED

srsName CDATA #IMPLIED

<!ELEMENT exterior (LinearRing)>

<!ELEMENT interior (LinearRing)>

<!ELEMENT LinearRing (pos)>

<!ATTLIST LinearRing

id ID #IMPLIED

srsName CDATA #IMPLIED

 

<!ELEMENT MultiPolygon (polygonMember*)>

<!ATTLIST MultiPolygon

id ID #IMPLIED

srsName CDATA #IMPLIED

<!ELEMENT polygonMember (Polygon?)>

 

<!ELEMENT ArcByCenterPoint (pos, radius, startAngle?, endAngle?)>

<!ATTLIST ArcByCenterPoint

interpolation (linear | geodesic | circularArcCenterPointWithRadius) #FIXED "circularArcCenterPointWithRadius"

numArc CDATA #REQUIRED

<!ELEMENT CircleByCenterPoint (pos, radius, startAngle?, endAngle?)>

<!ATTLIST CircleByCenterPoint

    interpolation (linear | geodesic | circularArcCenterPointWithRadius) #FIXED "circularArcCenterPointWithRadius"

    numArc CDATA #REQUIRED

 

<!ELEMENT CircularArc (pos, innerRadius, outerRadius, startAngle, endAngle)>

<!ATTLIST CircularArc

    id ID #IMPLIED

    srsName CDATA #IMPLIED

    interpolation (linear | geodesic | circularArcCenterPointWithRadius) #FIXED "circularArcCenterPointWithRadius"

    numArc CDATA #REQUIRED

<!ELEMENT startAngle (#PCDATA)>

<!ATTLIST startAngle

    uom CDATA #REQUIRED

<!ELEMENT endAngle (#PCDATA)>

<!ATTLIST endAngle

    uom CDATA #REQUIRED

<!ELEMENT innerRadius (#PCDATA)>

<!ATTLIST innerRadius

uom CDATA #REQUIRED

<!ELEMENT outerRadius (#PCDATA)>

<!ATTLIST outerRadius

uom CDATA #REQUIRED

<!ELEMENT radius (#PCDATA)>

<!ATTLIST radius

    uom CDATA #REQUIRED

<!ELEMENT Ellipse ((pos), majorAxis, minorAxis, rotation)>

<!ATTLIST Ellipse

id ID #IMPLIED

srsName CDATA #IMPLIED

<!ELEMENT majorAxis (#PCDATA)>

<!ATTLIST majorAxis

uom CDATA #REQUIRED

<!ELEMENT minorAxis (#PCDATA)>

<!ATTLIST minorAxis

uom CDATA #REQUIRED

<!ELEMENT rotation (#PCDATA)>

<!ATTLIST rotation

uom CDATA #REQUIRED

 

<!ELEMENT boundedBy (Envelope)>

<!ELEMENT Envelope ((pos+))>

<!ATTLIST Envelope

id ID #IMPLIED

srsName CDATA #IMPLIED

<!ELEMENT CompassPoint (#PCDATA)>

 

1.7.2          UOMUnit of Measure

测量单位,包括角度,距离,高度,速度和时间等。

<!ELEMENT Altitude EMPTY>

<!ATTLIST Altitude

value CDATA #REQUIRED

accuracy CDATA #IMPLIED

uom (KM | M | DM | MI | YD | FT) #IMPLIED

<!ELEMENT Angle EMPTY>

<!ATTLIST Angle

value CDATA #REQUIRED

accuracy CDATA #IMPLIED

uom CDATA #FIXED "DecimalDegrees"

<!ELEMENT Distance EMPTY>

<!ATTLIST Distance

value CDATA #REQUIRED

accuracy CDATA #IMPLIED

uom (KM | M | DM | MI | YD | FT) #IMPLIED

<!ELEMENT Speed EMPTY>

<!ATTLIST Speed

value CDATA #REQUIRED

accuracy CDATA #IMPLIED

uom (KPH | MPH | MPS | FPS) #IMPLIED

<!ELEMENT Time EMPTY>

<!ATTLIST Time

begin CDATA #REQUIRED

duration CDATA #IMPLIED

utcOffset CDATA #IMPLIED

<!ELEMENT TimeStamp EMPTY>

<!ATTLIST TimeStamp

begin CDATA #REQUIRED

duration CDATA #IMPLIED

 

 

1.7.3        ADT (Abstract Data Type)

抽象数据类型包括AOI兴趣区域,Map地图,POI兴趣点,Address地址,Position位置,RouteGeometry路径线路等。

<!ELEMENT AOI (CircleByCenterPoint | Polygon | Envelope)>

 

<!ELEMENT Map (Content, (BBoxContext | CenterContext))?>

<!ELEMENT Content (Data | URL)>

<!ATTLIST Content

format CDATA #REQUIRED

width CDATA #REQUIRED

height CDATA #REQUIRED

<!ELEMENT Data (#PCDATA)>

<!ELEMENT URL (#PCDATA)>

<!ELEMENT BBoxContext ((pos+))>

<!ATTLIST BBoxContext

id ID #IMPLIED

srsName CDATA #IMPLIED

<!ELEMENT CenterContext (CenterPoint, ((DisplayScale, DPI) | (radius)))>

<!ATTLIST CenterContext

azimuth CDATA #IMPLIED

SRS CDATA #REQUIRED

<!ELEMENT CenterPoint ((pos))>

<!ATTLIST CenterPoint

id ID #IMPLIED

srsName CDATA #IMPLIED

<!ELEMENT DisplayScale (#PCDATA)>

<!ELEMENT DPI (#PCDATA)>

<!ELEMENT radius (#PCDATA)>

<!ATTLIST radius

    uom CDATA #REQUIRED>

 

<!ELEMENT Address (freeFormAddress | ((StreetAddress | StreetIntersection)?, Place*, PostalCode?))>

<!ATTLIST Address

addressee CDATA #IMPLIED

countryCode CDATA #REQUIRED

<!ELEMENT freeFormAddress (#PCDATA)>

<!ELEMENT StreetAddress (Building?, Street)>

<!ELEMENT StreetIntersection (Street, IntersectingStreet)>

<!ELEMENT Street (#PCDATA)>

<!ATTLIST Street

directionalPrefix CDATA #IMPLIED

typePrefix CDATA #IMPLIED

officialName CDATA #IMPLIED

typeSuffix CDATA #IMPLIED

directionalSuffix CDATA #IMPLIED

muniOctant (N | NNE | NE | ENE | E | ESE | SE | SSE | S | SSW | SW | WSW | W | WNW | NW | NNW) #IMPLIED  // Street的以上属性暂不要求

<!ELEMENT Building EMPTY>

<!ATTLIST Building

number CDATA #IMPLIED

subdivision CDATA #IMPLIED

buildingName CDATA #IMPLIED

<!ELEMENT Place (#PCDATA)>

<!ATTLIST Place

type (CountrySubdivision | CountrySecondarySubdivision | Municipality | MunicipalitySubdivision) #REQUIRED

<!ELEMENT PostalCode (#PCDATA)>

 

 

<!ELEMENT POI (POIAttributeList?, Point?, Address?)>

<!ATTLIST POI

ID CDATA #REQUIRED

POIName CDATA #IMPLIED

phoneNumber CDATA #IMPLIED

description CDATA #IMPLIED

<!ELEMENT POIAttributeList (ReferenceSystem?, POIInfoList?)>

<!ELEMENT POIInfoList (POIInfo+)>

<!ELEMENT POIInfo EMPTY>

<!ATTLIST POIInfo

name CDATA #REQUIRED

value CDATA #REQUIRED

<!ELEMENT ReferenceSystem (NamedReferenceSystem+)>

<!ELEMENT NamedReferenceSystem(CUCS)>

 

<!ELEMENT CUCS EMPTY>

<!ATTLIST CUCS

type CDATA #IMPLIED

subType CDATA #IMPLIED

category CDATA #IMPLIED

 

<!ELEMENT Position (Point, (Ellipse | CircleByCenterPoint | CircularArc | Polygon | MultiPolygon)?, QoP?, Time?, Speed?, Direction?)>

<!ATTLIST Position

levelOfConf CDATA #IMPLIED

<!ELEMENT QoP (((HorizontalAcc, VerticalAcc)))>

<!ATTLIST QoP

responseReq (No_Delay | Low_Delay | Delay_Tol) #IMPLIED

responseTimer CDATA #IMPLIED

<!ELEMENT HorizontalAcc (Distance | Angle)>

<!ELEMENT VerticalAcc (Distance)>

<!ELEMENT Direction EMPTY>

<!ATTLIST Direction

value CDATA #REQUIRED

accuracy CDATA #IMPLIED

uom CDATA #FIXED "DecimalDegrees"

 

<!ELEMENT RouteGeometry (LineString)>

 

<!ELEMENT RouteHandle EMPTY>

<!ATTLIST RouteHandle

serviceID CDATA #IMPLIED

routeID CDATA #REQUIRED