Internet DevelppmentGIS+BIM产品开发

400 878 0179

SEARCH

与我们合作

我们是一家专注于空间信息二三维可视化产品研发和应用建设的企业。
主营业务:GIS+BIM三维融合渲染平台、二三维GIS地理信息平台、2.5D-GIS平台、VR全景三维可视化平台、室内地图可视化平台。

有一个品牌项目想和我们谈谈吗?

您可以填写右边的表格,让我们了解您的项目需求,这是一个良好的开始,我们将会尽快与您取得联系。当然也欢迎您给我们写信或是打电话,让我们听到您的声音

您也可通过下列途径与我们取得联系:

地 址: 上海市闵行区顾戴路2337号B栋7楼

电 话: 400 878 0179

微 信: 400-878-0179

邮 箱: pengzhao2688@163.com

网 址: http://chinagis.cc

快速提交您的需求 ↓

三维gis平台二次开发接口

发布日期:2020-09-09 浏览次数:1024

1、3DGIS模型加载地址http://api.ztmapinfo.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);
}

GO 立即咨询
了解更多解决方案

TOP

获取报价 免费电话
获取报价
您的称呼:

*

您的电话:

*

您的邮箱:

*

重要的事情,电话里聊

接通客服

不方便的时候线上咨询,在线等哦