您当前的位置:首页 > JavaScript API 触控版 > 开发指南

服务

6.1 地图服务

地图服务是指那些提供数据信息的接口,比如POI搜索、驾车导航、地址解析等。

提供的服务有:

服务名称描述详细说明
LocalSearch兴趣点(POI)搜索提供兴趣点的位置检索、周边检索和范围检索。
DrivingRoute驾车导航提供驾车出行方案的搜索服务。
Geocoder地址解析提供将地址信息转换为坐标点信息的服务。
LocalCityIP定位城市提供自动判断您所在城市的服务。
Geolocation浏览器定位提供浏览器定位服务,需要浏览器支持。

6.2 POI搜索

Careland.LocalSearch提供兴趣点搜索服务,在使用兴趣点搜索时需要为其设置一个检索区域,检索区域可以是Careland.Map对象、Careland.Point对象或者是城市名称(比如:"北京市")的字符串。Careland.LocalSearch构造函数的第二个参数是可选的,其中map指定结果所展现的地图实例。

var map = new Careland.Map("mymap",new Careland.Point(410942332,81392068),10);
map.load();
var local = new Careland.LocalSearch(map, {map: map});
local.search("天安");

另外,Careland.LocalSearch还提供包含searchNearby和searchInBounds方法,为您提供周边搜索和范围搜索服务。

除了搜索结果会自动添加到地图外,您还可以通过数据接口获得详细的数据信息,结合地图API您可以自行向地图添加标注和信息窗口。Careland.LocalSearch和Careland.LocalSearchOptions类提供了若干设置回调函数的接口,通过它们可得到搜索结果的数据信息。例如,通过onSearchComplete回调函数参数可以获得Careland.LocalResult对象实例,它包含了最近一次搜索结果的数据信息。当回调函数被执行时,您可以使用Careland.LocalSearch.getStatus()方法来确认搜索是否成功或者得到错误的详细信息。

在下面这个示例中,通过onSearchComplete回调函数得到第一页每条结果的标题和地址信息,并输出到页面上:

var map = new Careland.Map("mymap",new Careland.Point(410942332,81392068),10);
map.load();
var local = new Careland.LocalSearch(map);
local.setSearchCompleteCallback(function(results){
  var status = local.getStatus();
   if(status.errcode == "0"){ // 判断状态是否正确
    var s = [], item=null;
    for (var i = 0,len=results.getCurrentNumPois(); i       item = results.getPoi(i);
      s.push(item.name + ", " + item.address);
    }
    document.getElementById("resultdiv").innerHTML = s.join("
");
  }
});
local.search("公园");

6.3 驾车导航

Careland.DrivingRoute提供驾车导航服务。

下面示例展示了如何使用驾车导航接口:

var map = new Careland.Map("mymap",new Careland.Point(410942332,81392068),10);
map.load();
var driving = new Careland.DrivingRoute(map, {
  map: map,
  autoViewport: true
});
driving.search("创建大厦", "深圳机场");

下面示例中,我们提供了结果面板panel参数,方案描述会自动展示到此panel容器中。

var map = new Careland.Map("mymap",new Careland.Point(410942332,81392068),10);
map.load();
var driving = new Careland.DrivingRoute(map, {
  map: map,
  panel : "results",
  autoViewport: true
});
driving.search("创建大厦", "深圳机场");

驾车导航服务也提供了丰富的数据接口,通过onSearchComplete回调函数可以得到Careland.DrivingRouteResult对象,它包含了驾车导航结果数据信息。结果会包含若干驾车方案(目前仅提供一条方案),每条方案中包含了若干驾车线路。每条驾车线路又会包含一系列的诱导点(Careland.Step),诱导点描述了具体驾车行驶方案,可通过Careland.Step.getDescription()方法获得。

var map = new Careland.Map("mymap",new Careland.Point(410942332,81392068),10);
map.load();
var driving = new Careland.DrivingRoute(map);
driving.setSearchCompleteCallback(function(results){
  var status = driving.getStatus();
  if(status.errcode == "0"){ // 判断状态是否正确
    // 获取第一条方案
    var plan = results.getPlan(0);
    var s = [];
    // 获取方案的驾车线路
    for (var i = 0; i < plan.getNumRoutes (); i ++){
      var route = plan.getRoute(i);
      var stepnum = route.getNumSteps();
      s.push((i + 1) + ". " + route.getStep(0).getDescription());
      if(stepnum > 1){
        // 获取每个关键步骤
        for (var j = 0; j           var step = route.getStep(j);
          s.push("   " + step.getDescription());
        }
      }
    }
    //输出到页面
    document.getElementById("resultdiv").innerHTML = s.join("
");
  }
});
driving.search("创建大厦", "深圳机场");

6.4 地址解析

根据一个坐标点得到一个地址的描述。您可以通过Geocoder.getLocation()方法获得地址描述。当解析工作完成后,您提供的回调函数将会被触发。如果解析成功,则回调函数的参数为GeocoderResult对象,否则为null。

// 创建地址解析实例
var myGeo = new Careland.Geocoder();
// 根据坐标得到地址描述
myGeo.getLocation(new Careland.Point(410942332,81392068), function(result){
  if (result){
    alert(result.address);
  }
});

  • Copyright©2012-2021 careland All Right Reserved
  • 深圳市凯立德科技股份有限公司 版权所有
  • 备案号: 粤ICP备05072496号-10