home 
 about us 
  Services
 examples
 NEWS 
technology 
  products
自主创新 重点跨越 支撑发展 引领未来
 • 当前位置:
热点技术  TECHNOLOGY
三维gis平台二次开发接口
来源:中威新能 | 作者: 深圳中维数字信息技术有限公司 | 发布时间 : 1820天前 | 385 次浏览 | 分享到:
1、3DGIS模型加载地址http://api.iosgb.com/obj/yangjing/test.FBX 2、建筑点击事件监听 obj.on("click",function(e,position,xy,point){ if(drawPoly3DMode) return;//如果是绘制区域模式,则禁止此功能 sandplugin.modelRange(e,{color:"#00ff00"}); //此处可拿到建筑的名称、坐标、高度 var lngLat = position.lngLat; var height = point.z; var meshname = e.name; }); 3、根据名称获取建筑 var building = sandplugin.getObject("b05"); sandplugin.modelRange(building,{color:"#00ff00"}); 4、绘制区域 var allPoints=[]; //存放绘制范围区域的所有坐标 var endPoint=null; //首尾相连的坐标,及最后一个坐标 var areaId=null; //区域的编号 var allDatas={}; //存放所有绘制的范围区域数据 function initToolEvent(){ drawPoly3DMode = true; map.on("click",mapClick); map.on("mousemove",mapMoveEvent); map.on("dblclick",mapdblClick); } function mapClick(event){ //地图单击事件,开始绘制区域 if(endPoint==null)endPoint=[event.lngLat.lng,event.lngLat.lat]; if(areaId==null)areaId="area_"+Date.now(); allPoints.push([event.lngLat.lng,event.lngLat.lat]); } function mapMoveEvent(event){ //地图移动事件 if(endPoint==null) return; var points=[].concat(allPoints); points.push([event.lngLat.lng,event.lngLat.lat]); points.push(endPoint); drawPoly3D(areaId,points); //绘制范围 } function mapdblClick(event){ //地图双击事件,结束绘制区域 if(endPoint==null) return; drawPoly3DMode = false; map.off("click",mapClick); //移除事件 map.off("mousemove",mapMoveEvent); map.off("dblclick",mapdblClick); allPoints.splice(allPoints.length-1,1); allPoints.push(endPoint); drawPoly3D(areaId,allPoints); //存放所有的区域数据(data:位置坐标数组;height:区域高度;center:区域中心点) allDatas[areaId]={data:allPoints,height:1,center:getAreaCenter(allPoints)}; allPoints=[]; //清除数据 areaId=null; endPoint=null; } function drawPoly3D(id,datas){ var mesh=sandplugin.ztMesh.creatPoly3D(datas,{id:id,height:2,isTop:true,opacity:0.6,color:"#00ff00"}); sandplugin.remove(id); sandplugin.add(mesh); }