/*
|
* Circle Scan from center
|
*/
|
|
(function (window) {
|
'use strict';
|
|
function define_CesiumPOI(){
|
//Main object
|
var CesiumPOI = {};
|
var suggestionArr = [];
|
|
CesiumPOI.suggestion = function(options){
|
clearsuggestionArr(options.viewer);
|
var url = "http://api.map.baidu.com/place/v2/suggestion?query="
|
+ options.poiname+"&location="+options.posstr+"&coord_type=1&"
|
+ "output=json&ak=ZpRjzwQe7dQCVzTR9zytcdLO";
|
$.ajax({
|
url: url,
|
dataType: "jsonp",
|
cache:false,
|
success:function(data){
|
if(data.status==0){
|
var result = data.result;
|
var pinBuilder = new Cesium.PinBuilder();//创建cesium pin标签
|
var content = '<div class="col-md-12 layerul">'
|
+ '<label class="col-md-12 mycol searchmenutitle">地名地址查询结果</label>'
|
+ '<i onclick="closePOIResult()" '
|
+ 'class="fa myfa fa-remove pull-right myfa-search-close"></i>'
|
+ '<div class="col-md-12 mycol searchresultcon">';
|
var campos = options.viewer.scene.camera.position;
|
var camposgeo = Cesium.Cartographic.fromCartesian(campos);
|
var camheight = camposgeo.height;
|
for (var i = 0; i < result.length; i++) {
|
var bdpos = bd09towgs84(result[i].location.lng, result[i].location.lat);
|
var pos = Cesium.Cartesian3.fromDegrees(bdpos[0],bdpos[1], 160);
|
if(camheight<30000){
|
pos = viewer.scene.clampToHeight(pos);
|
}
|
var str = (i+1).toString();
|
if(options.img&&options.img!=''){
|
suggestionArr.push(options.viewer.entities.add({
|
id : 'pi'+result[i].uid,
|
position : pos,
|
label : {
|
show : true,
|
verticalOrigin : Cesium.VerticalOrigin.BOTTOM,
|
horizontalOrigin : Cesium.HorizontalOrigin.CENTER,
|
font : 'bold 20px Helvetica',
|
fillColor : Cesium.Color.WHITE,
|
text : str,
|
pixelOffset : new Cesium.Cartesian2(0.0, -26.0),
|
disableDepthTestDistance : 100000000,
|
},
|
billboard : {
|
image : options.img,
|
verticalOrigin : Cesium.VerticalOrigin.BOTTOM,
|
horizontalOrigin : Cesium.HorizontalOrigin.CENTER,
|
}
|
}));
|
}else{
|
suggestionArr.push(options.viewer.entities.add({
|
id : 'pi'+result[i].uid,
|
position : pos,
|
billboard : {
|
image : pinBuilder.fromText(str,options.color,36).toDataURL(),
|
verticalOrigin : Cesium.VerticalOrigin.BOTTOM,
|
disableDepthTestDistance : 50000
|
}
|
}));
|
}
|
var position = bdpos[0]+','+bdpos[1]+','+100;
|
var addressstr = result[i].province+result[i].city+result[i].district;
|
content += '<div id="'
|
+ result[i].uid
|
+ '" data-name ="'
|
+ position
|
+ '" data-type = "poi" onclick="moveandshow_3D(this)" class="row ';
|
(i % 2 == 0) ? content += 'sr-row-up' : content += 'sr-row-up-black';
|
content += '"><i class="col-md-1 mycol fa myfa fa-map-marker" ></i>'
|
+ '<label class="col-md-11 mycol">' + result[i].name
|
+ '</label><label class="col-md-12 mycol">' + addressstr
|
+ '</label></div>';
|
}
|
content += '</div></div><div class="box_lt"></div><div class="box_lb">'
|
+ '</div><div class="box_rt"></div><div class="box_rb"></div>';
|
$('#'+options.resultId).html(content);
|
}else{
|
alert("查询失败,请重试!");
|
}
|
}
|
});
|
};
|
|
CesiumPOI.detail = function(id){
|
var url = "http://api.map.baidu.com/place/v2/detail?uid="
|
+ id+"&output=json&scope=2&ak=ZpRjzwQe7dQCVzTR9zytcdLO";
|
$.ajax({
|
url: url,
|
dataType: "jsonp",
|
cache:false,
|
success:function(data){
|
if(data.status==0){
|
var result = data.result;
|
var content = '<div id="poi'+result.uid+'" class="ibox float-e-margins mybox mapPopPOI box-shadow-2" onclick="clickStick(this.id)">'
|
+ '<div class="ibox-title mybox-title box-shadow-inset"><h5>'+result.name+'</h5><div class="ibox-tools">'
|
+ '<i class="fa fa-remove myfab myfa-dark" onclick="closeVideoPop(\''+result.uid+'\')" title="关闭气泡"></i>'
|
+ '</div></div><div class="ibox-content"><table cellspacing="0">';
|
if(result.address!=undefined)content += '<tr><td class="keytd">地址</td><td class="valtd">'+result.address+'</td></tr>';
|
if(result.telephone!=undefined)content += '<tr><td class="keytd">电话</td><td class="valtd">'+result.telephone+'</td></tr>';
|
if(result.detail_info.tag!=undefined)content += '<tr><td class="keytd">分类</td><td class="valtd">'+result.detail_info.tag+'</td></tr>';
|
content += '</table></div>'
|
+ '<div class="box_lt"></div><div class="box_lb"></div><div class="box_rt"></div><div class="box_rb"></div></div>';
|
var bdpos = bd09towgs84(result.location.lng, result.location.lat);
|
var options = {
|
"viewer":viewer,
|
"id":result.uid,
|
"popupWidth":240,
|
"popupHeight":175,
|
"pos":{"lon":Number(bdpos[0]),"lat":Number(bdpos[1]),"alt":150},
|
"extentHeight":200,
|
"extentColor":Cesium.Color.WHITE,
|
"content":content
|
};
|
CesiumPop.addDivPop(options);
|
}else{
|
alert("查询失败,请重试!");
|
}
|
}
|
});
|
};
|
|
function clearsuggestionArr(viewer){
|
for (var i = 0; i < suggestionArr.length; i++) {
|
viewer.entities.remove(suggestionArr[i]);
|
}
|
}
|
|
CesiumPOI.clear = function(viewer){
|
clearsuggestionArr(viewer);
|
};
|
|
return CesiumPOI;
|
}
|
|
if (typeof(CesiumPOI) === 'undefined') {
|
window.CesiumPOI = define_CesiumPOI();
|
} else {
|
console.log("CesiumPOI already defined.");
|
}
|
})(window);
|