自有数据检索
Fengmap JavaScript SDK支持对数据模型(Model)、公共设施(facility)、自定义标注(Marker)等地图元素的搜索分析。自有数据的查询是您的业务数据。可通过地图数据内的某个字段与自有数据相关联,分两步查询:第一步先查询地图数据;第二步在根据地图数据关联业务数据字段查询对应自有数据。
注:本示例以*.fmap数据中的FID字段与自有数据中的FID关联为例,实际中也可通过其他字段关联与地图中的FID字段关联。地图中的FID字段为全地图唯一标识。
创建搜索分析对象
地图加载完成后向创建FMSearchAnalyser
var searchAnalyser = new fengmap.FMSearchAnalyser(map);
创建搜索请求体对象
通过搜索体对象,如搜索FID=10347012的模型数据,设置如下所示:
//默认针对所有类型的地图元素的查询
var searchReq = new fengmap.FMSearchRequest();
//查询出所有楼层的地图元素中FID= '10347012'的对象,根据FID查询如果匹配,结果有且只有1条记录。
searchReq.FID = '10347012';
地图数据查询分析
搜索分析对象执行query方法,传入分析参数对象,返回查询结果。代码如下所示:
var sortRes = searchAnalyser.getQueryResult(searchReq, ['SINGLE']);
自有数据查询分析
在地图数据查询分析的结果中得到数据的FID,做二次查询,比对自有数据的FID和数据中FID对应的条目得到自由数据匹配的结果。代码如下所示:
//自有Json数据如下:
var data = [{
"FID": "10347012",
"NAME": "VANS",
"TYPE": "100100",
"FLOOR": "F1",
"GROUP": "1"
},
{
"FID": "10347013",
"NAME": "茜丽杯子蛋糕",
"TYPE": "170000",
"FLOOR": "F1",
"GROUP": "1"
},
{
"FID": "10347015",
"NAME": "LOHO",
"TYPE": "190000",
"FLOOR": "F1",
"GROUP": "1"
}];
//查询分析 根据FID只有1条结果对应
var sortRes = searchAnalyser.getQueryResult(searchReq, ['SINGLE']);
var model = sortRes[0];
for(var i = 0,len = data.length; i < len; i++){
if(data[i].FID == model.FID){
//输出匹配到的自有数据
console.log(data[i]);
}
}