XWWitPark/witpark_szjsc/xw_szjsc_web/public/widgets/queryBaiduPOI/widget.js

2 lines
9.4 KiB
JavaScript
Raw Normal View History

2024-09-12 00:10:00 +00:00
/* 2020-9-24 14:48:24 | 版权所有 军懋国兴 */
var widget_queryBaiduPOI=mars3d.widget.bindClass(mars3d.widget.BaseWidget.extend({options:{resources:["view.css","./lib/cesiumjs/plugins/class/BaiduPOI.js"],view:{type:"append",url:"view.html",parent:"body"}},create:function(){this.baiduPOI=new BaiduPOI},winCreateOK:function(i){var t,e;"append"==i.type&&(t=this,$("#map-querybar img").each(function(i,e){$(e).attr("src",t.path+$(e).attr("src"))}),t.config.position&&$("#map-querybar").css(t.config.position),t.config.style&&$("#map-querybar").css(t.config.style),$("#txt_querypoi").click(function(){0==$.trim($(this).val()).length&&(t.hideAllQueryBarView(),t.showHistoryList())}),e=0,$("#txt_querypoi").bind("input propertychange",function(){clearTimeout(e),e=setTimeout(function(){t.hideAllQueryBarView(),t.clearLayers();var i=$.trim($("#txt_querypoi").val());0==i.length?t.showHistoryList():t.autoTipList(i,!0)},500)}),$("#btn_querypoi").click(function(){clearTimeout(e),t.hideAllQueryBarView();var i=$.trim($("#txt_querypoi").val());t.strartQueryPOI(i,!0)}),$("#txt_querypoi").bind("keydown",function(i){"13"==i.keyCode&&$("#btn_querypoi").click()}),$("#querybar_detail_back").click(function(){t.hideAllQueryBarView(),$("#querybar_resultlist_view").show()}))},activate:function(){var i=this;this.handler=new Cesium.ScreenSpaceEventHandler(this.viewer.scene.canvas),this.handler.setInputAction(function(){0==$.trim($("#txt_querypoi").val()).length&&(i.hideAllQueryBarView(),$("#txt_querypoi").blur())},Cesium.ScreenSpaceEventType.LEFT_CLICK)},disable:function(){this.handler&&(this.handler.destroy(),delete this.handler),this.hideAllQueryBarView(),this.clearLayers()},hideAllQueryBarView:function(){$("#querybar_histroy_view").hide(),$("#querybar_autotip_view").hide(),$("#querybar_detail_view").hide(),$("#querybar_resultlist_view").hide()},autoSearch:function(i){$("#txt_querypoi").val(i),$("#btn_querypoi").trigger("click")},autoTipList:function(i,e){this.isLonLat(i)||(this.hasExWidget()&&e?this.autoExTipList(i):this.baiduPOI.autoTip({text:i,location:this.viewer.mars.getCenter(),success:function(i){for(var e="",t=i.list,a=0;a<t.length;a++){var r=t[a].name;e+="<li><i class='fa fa-search'></i><a href=\"javascript:widget_queryBaiduPOI.autoSearch('"+r+"');\">"+r+"</a></li>"}0<e.length&&($("#querybar_ul_autotip").html(e),$("#querybar_autotip_view").show())}}))},queryText:null,strartQueryPOI:function(i,e){0!=i.length?(this.addHistory(i),this.hideAllQueryBarView(),this.isLonLat(i)?this.centerAtLonLat(i):this.hasExWidget()&&e?this.queryExPOI(i):(this.thispage=1,this.queryText=i,this.query_location=this.viewer.mars.getCenter(),this.query_radius=this.viewer.camera.positionCartographic.height,this.queryPOI())):toastr.warning("请输入搜索关键字!")},queryPOI:function(){var e=this;this.baiduPOI.queryText({text:this.queryText,count:this.pageSize,page:this.thispage-1,location:this.query_location,radius:this.query_radius,success:function(i){e.isActivate&&e.showPOIPage(i.list,i.allcount)}})},pageSize:6,arrdata:[],counts:0,allpage:0,thispage:0,showPOIPage:function(i,e){this.arrdata=i,this.counts=e,this.counts<i.length&&(this.counts=i.length),this.allpage=Math.ceil(this.counts/this.pageSize);var t="";if(0==this.counts)t+='<div class="querybar-page"><div class="querybar-fl">没有找到"<strong>'+this.queryText+'</strong>"相关结果</div></div>';else{for(var a,r=0;r<this.arrdata.length;r++){var s=this.arrdata[r],o=(this.thispage-1)*this.pageSize;s.index=o+(r+1);var n=s.detail_info&&s.detail_info.detail_url?'<a href="'+s.detail_info.detail_url+'" target="_black" style="color: #ffffff; ">'+s.name+"</a>":s.name;t+='<div class="querybar-site" onclick="widget_queryBaiduPOI.showDetail(\''+r+'\')"> <div class="querybar-sitejj"> <h3>'+s.index+"、"+n+"</h3> <p>"+(s.address||"")+"</p> </div> </div>",this.objResultData[r]=s}a=1<this.allpage?'<div class="querybar-ye querybar-fr">'+this.thispage+"/"+this.allpage+' <a href="javascript:widget_queryBaiduPOI.showFirstPage()">首页</a> <a href="javascript:widget_queryBaiduPOI.showPretPage()">&lt;</a> <a href="javascript:widget_queryBaiduPOI.showNextPage()">&gt;</a>