/* * 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 = '
' + '' + '' + '
'; 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 += '
' + '
'; } content += '
' + '
'; $('#'+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 = '
' + '
'+result.name+'
' + '' + '
'; if(result.address!=undefined)content += ''; if(result.telephone!=undefined)content += ''; if(result.detail_info.tag!=undefined)content += ''; content += '
地址'+result.address+'
电话'+result.telephone+'
分类'+result.detail_info.tag+'
' + '
'; 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);