地图服务是指提供地图数据的接口,如 Poi检索、路线计算服务、公交线路详情、公交站点详情等。
POI检索服务 SuperMap.OSP.Service.POISearch
提供指定地区的位置检索服务。你可以通过 SuperMap.OSP.Service.POISearch 对象检索POI数据。此对象与SuperMapCloud地图API Search Service 进行通信,该服务将接收检索请求并传回计算结果。
通过指定要检索的关键字文本字符串("如酒店"),要检索的地理区域范围(当前地图显示范围)来查找POI数据。检索服务返回的是多个 SuperMap.OSP.UI.POI 对象,并且能够分页获取。
检索请求 SearchRequest
SuperMapCloud地图 API 需要调用外部服务器,因此,对检索服务的访问是异步的。为此,您需要传递一个回调方法,以在请求完成后执行。此回调方法将会对结果进行处理。请注意,检索服务以 SearchResult 对象的形式传回Poi 数据,多个poi对象被包含在SearchResult对象的 records[] 属性中。
要检索Poi数据。需要创建一个类型为 SuperMap.OSP.Service.POISearch 的对象,并调用 POISearch.getPOIsByGeometry() 向检索服务发送一条请求,方法是为其传递三个参数分别是: SuperMap.OSP.Service.GetPOIsByGeometryParam 参数对象,回调方法,错误处理函数。
SearchRequest 的参数SuperMap.OSP.Service.GetPOIsByGeometryParam对象常量包含下列字段:
示例 SearchRequest 如下所示:
检索响应
检索服务要求一个回调方法,在检索方法中返回结果。回调函数返回一个json格式的对象。
检索结果 SearchResult
SearchResult 对象常量表示一个检索结果,并且是采用以下形式的对象:
数据POI
POI是“Point of Interest”的缩写,可以翻译成“兴趣点”,这是一个GIS的术语。一般而言POI是相对于地名等普通地理信息的,狭义上不包含地名等。不过,广义上POI应该指一切可以抽象为点的地理对象。SuperMapCloud地图 API中 POI 对象提供了此类机制。代表一个地点对象。它有以下属性:
- id 唯一标示。
- title 标题。
- scaledContents 显示内容。
- position 位置。
- properties 属性。
- visible 是否显示。
结果POI存放和显示
我们通过SuperMap.OSP.UI.POIGroup的addPOIs方法来保存分页查询出来的每一个POI,并将这个POIGroup由SuperMap.OSP.UI.POIManager来管理POI组的显示和隐藏。
下面举例说明本地检索、周边检索、矩形区域检索的使用。比如在北京搜索“酒店”,我们来看看下面几个例子:
本地检索
示例代码
查看示例
周边检索:
源代码示例:
查看示例
在周边检索中,通过构markRoundGeometry(返回SuperMap.Geometry.Polygon类型的对象)函数来绘制一个圆形搜索区域,方法两个参数如下
- center 中心点,SuperMap.OSP.Core.Point2D类型;
- radius 半径,Number类型。
路线分析
用于计算两个或多个位置之间路线的服务。你可以通过 SuperMap.OSP.Service.TransportationAnalyst 对象检索路线计算服务。此对象与 SuperMapCloud Maps API Search Service 进行通信,该服务将接收检索请求并传回路线计算的结果。
查询请求 transportationAnalyst
要检索Poi数据。需要创建一个类型为 SuperMap.OSP.Service.TransportationAnalyst 的对象,并调用 findPath 向检索服务发送一条请求,方法是为其传递三个参数,分别是 SuperMap.OSP.Service.TransportionAParameter 参数对象,回调方法,错误处理函数。
transportationAnalyst 的参数SuperMap.OSP.Service.TransportionAParameter对象包含下列字段:
示例 SearchRequest 如下所示:
查询响应
查询服务要求一个回调方法,在检索方法中返回结果。回调函数返回一个json格式的对象。
查询结果 SearchResult
SearchResult 对象常量表示一个查询结果,并且是采用以下形式的对象:
线路结果的显示
查询的结果分为两部分,几何线路图和途径点。几何图通过featuresLayer.addFeatures(feature)显示;途经点我们可以把每个途经点的信息进行以文本形式展现。
示例代码
查看示例
地址解析 Geocoder
SuperMapCloud地图 API 需要调用外部服务器,因此,对地址解析服务的访问是异步的。为此,您需要传递一个回调方法,以在请求完成后执行。此回调方法将会对结果进行处理。
您可以通过在代码中使用SuperMap.OSP.ExtentionService.Geocoder 对象,访问 SuperMapCloud地图 API 地址解析服务。Geocoder.getPoint() 方法发起地址解析服务请求,方法是向地址解析服务传递三个参数,分别是:请求参数SuperMap.OSP.ExtentionService.GeocodeParam,回调函数和错误处理函数。
地址解析请求参数 SuperMap.OSP.ExtentionService.GeocodeParam 包含下列字段:
地址解析响应
地址解析服务要求一个回调方法,以在检索到地址解析器返回的结果后执行。此回调有一个参数 GeocoderResult。
地址解析结果 GeocoderResult
GeocoderResult 对象常量表示一个地址解析结果,并且是采用以下形式的对象:
地址组成部分的类型
每个结果是 Point2D 类型的对象
地址解析示例:
源代码示例:
查看示例