基于Leaflet的全景综合展示实战

44 篇文章 14 订阅
38 篇文章 6 订阅

       众所周知,当前许多GIS类应用底图数据都是有层级限制。在一些需要高清晰的实景展示需求下,就必须要结合一些更接近真实的展示。比如倾斜摄影测量、Bim技术、全景展示技术。而从经济成本和时间成本上来比较,全景展示技术成本较低,制作流程简单(基于全景图片,可使用外部软件辅助生成,参见《实战!使用pano2vr生成html5全景页面》)。

       通过本文可掌握如何使用LeafLet结合全景信息,构建真实的全景综合展示。模拟在地图上显示带了全景数据的marker,点击每个marker将调用具体的全景页面。

前端技术:Html5+JQuery2.3+Leaflet1.7.1+Layer2.3(弹窗)

       第一步、Leaflet引入(详情参考:gis信息可视化之一Leaflet组件介绍

L.CRS.CustomEPSG4326 = L.extend({}, L.CRS.Earth, {    code: 'EPSG:4326',    projection: L.Projection.LonLat,    transformation: new L.Transformation(1 / 180, 1, -1 / 180, 0.5),    scale: function (zoom) {      return 256 * Math.pow(2, zoom - 1);    }  });
  //指定底图的投影,不能放在图层里面,否则坐标有偏移    var mymap = L.map('mapid',{crs:L.CRS.CustomEPSG4326}).setView([30.673828, 113.554688], 5);

       这里顺便演示了如何在leaflet中使用经纬度投影的数据,如何做投影转换。

      第二步、设置标签底图

//标签    L.tileLayer('http://localhost:8086/data/basemap_nowater/1-10label/{z}/{x}/{y}.png', {maxZoom: 10,minZoom:1,      id: 'mapbox/label',tileSize: 256,zoomOffset: -1    }).addTo(mymap);

       第三步、准备全景数据接口​​​​​​​

var local =["31.015279,121.552734","23.563987,115.708008","28.863918,112.587891","30.543339,112.983398","29.305561,103.535156"];var cityInfo = ["上海市","广州市","长沙市","武汉市","成都市"];

备注:以上数据仅供参考,实际使用可基于后台接口

        第四步、设置标绘marker​​​​​​​

var camareIcon = L.icon({    iconUrl: 'images/camera.jpg',    iconSize: [25, 25],    iconAnchor: [25, 25],    popupAnchor: [-13, -26]  });

第五步、把目标数据和marker绑定​​​​​​​

for(var i=0;i<5;i++){      var localStr = local[i];      var city = cityInfo[i];      var latLng = L.latLng(localStr.split(",")[0], localStr.split(",")[1]);      var camareMarker = L.marker(latLng,{icon:camareIcon,title:city});      camareMarker.addTo(mymap);      camareMarker.on("click",onCamareMarkerClick);    }

第六步、设置marker的点击事件​​​​​​​

function onCamareMarkerClick(e) {    layer.open({      type: 2,      title: false,//不需要title,页面更美观      fix: false,      shadeClose: false,      maxmin: false,      area: ['80%', '90%'],      content: 'http://localhost:8086/fullview/qj4/qj4.html',      end: function(){      }    });  }

       通过以上步骤基本就可以完成需求,将全景目标点在地图上定位,点击全景目标点,可以弹出全景页面,并可以操作全景图。

       第七步、综合展示成果(示意)

图片

marker标定

图片

非目标点点击

图片

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: leaflet实战开发是指基于leaflet地图库进行实际应用开发的过程。leaflet是一个开源的JavaScript地图库,提供了简洁、高性能的地图可视化功能。 在leaflet实战开发中,首先需要准备开发环境。可以使用HTML、CSS和JavaScript等前端技术进行开发。可以使用leaflet官方提供的CDN链接引入leaflet库,也可以下载和部署到本地服务器。 接下来,可以使用leaflet提供的API进行地图视图的初始化和交互。可以设置地图的中心点、缩放级别、瓦片图层等属性,以及添加标记、线段、多边形等地图要素。可以使用leaflet提供的事件监听功能,实现与地图交互时的响应动作。 在leaflet实战开发中,可以根据具体需求进行功能的扩展和定制。例如,可以使用leaflet插件系统中的第三方插件,实现更复杂的地图操作和可视化效果。也可以利用leaflet提供的丰富的控件库,添加比例尺、缩放按钮、图层控制等功能。 除了基本的地图视图展示和交互外,leaflet实战开发还可以应用于更广泛的领域。例如,可以与后端数据结合,实现地理信息系统(GIS)的开发,展示和分析地理数据。也可以结合其他前端框架或技术,如Vue.js或React,构建复杂的地图应用程序。 总之,leaflet实战开发是一项实用且灵活的技能,可以帮助开发者快速构建交互式地图应用。通过充分利用leaflet提供的功能和扩展,可以实现各种视觉效果和地图功能,满足用户对地图的需求。 ### 回答2: leaflet是一种用于Web地图开发的开源JavaScript库。通过使用leaflet,我们可以在Web上创建交互式的、可自定义的地图。leaflet实战开发主要包括以下几个方面: 首先,我们需要了解leaflet库的基本概念和用法。我们可以使用leaflet提供的API来创建地图、添加图层、标记地点等。leaflet还支持加载各种地图数据源,如OpenStreetMap、Google Maps等。 其次,我们需要学习如何使用leaflet来添加交互功能。leaflet提供了丰富的交互插件,如缩放、平移、弹出式窗口等。我们可以通过这些插件来增强地图的交互体验,并使用户能够与地图进行互动。 另外,leaflet还支持自定义样式和图层。我们可以使用自己的地图图块或图层,并根据需求自定义图层的样式、配色等。通过leaflet的插件和扩展,我们还可以添加一些高级功能,如热力图、聚类等。 在leaflet实战开发中,我们还需要考虑地图数据的处理和展示。我们可以使用leaflet的数据处理插件来加载、处理和展示地图数据。同时,我们还可以将地图数据与其他数据源进行整合,如实时数据、地理信息系统数据等。 最后,我们还可以将leaflet集成到其他Web开发框架中,如React、Angular等。通过集成,我们可以更灵活地使用leaflet,并与其他框架的功能进行整合。 总之,leaflet实战开发是一个涉及到地图数据处理、交互功能开发和样式定制的过程。通过学习leaflet的基本概念和用法,我们可以利用leaflet创建高品质、可定制的地图应用程序。 ### 回答3: leaflet是一种简单易用的开源JavaScript库,用于创建互动式地图。在leaflet实战开发中,我们可以利用其强大的功能实现各种地图相关的应用。 首先,我们可以使用leaflet来显示地图。通过添加图层、设置中心坐标和缩放级别,我们可以轻松地在网页中展示地图。还可以自定义地图的样式和标记,使其符合我们的需求。 其次,leaflet提供了许多交互工具和插件,可以实现地图的缩放、拖动、标记、测量等功能。我们可以根据项目需求选择适合的插件,增强地图的交互性和功能性。 另外,leaflet还支持地理编码和逆地理编码功能,可以根据地址或坐标轻松地获取对应的位置信息。这对于位置搜索、地理定位等场景非常有用。 leaflet还支持与其他地理数据源的集成,如OpenStreetMap、Google Maps等。我们可以在leaflet地图上叠加其他地理数据图层,实现更全面的地理信息展示。 在leaflet实战开发中,还可以利用其强大的可视化能力,创建热力图、聚类图等,展示地理数据的分布和趋势。这在地图分析、数据可视化等应用中非常有用。 总结来说,leaflet实战开发可以帮助我们实现各种地图应用,包括但不限于地图展示、交互功能、地理编码、数据可视化等。其灵活性和丰富的插件库使得开发过程更加便捷,大大提高了地图应用的开发效率。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

夜郎king

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值