当前位置: 首页 > article >正文

webgis开发之mapbox(1)

MAPBOX

01、mapbox加载地图

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>mapbox</title><!-- 1、引入mapbox库以及它的样式 --><script src="../lib/mapbox.js"></script><link rel="stylesheet" href="../lib/mapbox.css"><style>*{margin: 0;padding: 0;}#map{width: 100vw;height: 100vh;}</style>
</head>
<body><!-- 1、给地图准备一个容器 --><div id="map"></div><script>mapboxgl.accessToken = 'pk.eyJ1IjoiY2hlbmdjaGFvY2hhbyIsImEiOiJjbGU1aDZ2eWUwMXp4M29udmFnNnNyZjBhIn0.2Kd0ZX06ReEdBnZ9XU4XUA';// 3、创建地图const map = new mapboxgl.Map({container:'map',    //指定地图容器idstyle:'mapbox://styles/mapbox/streets-v12', //地图风格center:[114.30,30.50],  //地图中心坐标  zoom:12,    //缩放比例pitch:45,   //俯仰角 默认是0(0-90)bearing:90  //水平角 默认是0 (-180-180)});console.log(map.getBearing)console.log(map.getCenter)// setInterval(() => {//     let bearing = map.getBearing()//     bearing++//     map.setBearing(bearing)// }, 20);</script>
</body>
</html>

02、切换风格、投影方式

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>mapbox</title><!-- 1、引入mapbox库以及它的样式 --><script src="../lib/mapbox.js"></script><link rel="stylesheet" href="../lib/mapbox.css"><style>* {margin: 0;padding: 0;}#map {width: 100vw;height: 100vh;z-index: 1;}select{position: absolute;top: 2%;left: 2%;z-index: 2;}</style>
</head><body><select name="" id="" onchange="changeStyle(event)"><option value="mapbox://styles/mapbox/light-v11">Mapbox Light</option><option value="mapbox://styles/mapbox/dark-v11">Mapbox Dark</option></select><select id="projection" name="projection" onchange="changeStyle(event)" style="margin-left: 120px;"><option value="mercator">Mercator</option><option value="globe">Globe</option><option value="albers">Albers</option><option value="equalEarth">Equal Earth</option><option value="equirectangular">Equirectangular</option><option value="lambertConformalConic" selected="">Lambert Conformal Conic</option><option value="naturalEarth">Natural Earth</option><option value="winkelTripel">Winkel Tripel</option></select><div id="map"></div><script>mapboxgl.accessToken = 'pk.eyJ1IjoiY2hlbmdjaGFvY2hhbyIsImEiOiJjbGU1aDZ2eWUwMXp4M29udmFnNnNyZjBhIn0.2Kd0ZX06ReEdBnZ9XU4XUA';// 3、创建地图const map = new mapboxgl.Map({container: 'map',    //指定地图容器idstyle: 'mapbox://styles/mapbox/streets-v12', //地图风格center: [114.30, 30.50],  //地图中心坐标  // zoom: 10,    //缩放比例pitch: 45,   //俯仰角 默认是0(0-90)bearing: 90  //水平角 默认是0 (-180-180)});function changeStyle(event){// console.log(event)map.setStyle(event.target.value)}function changeProjection(event){// console.log(event)map.setProjection(event.target.value)}</script>
</body></html>

03、加载高德底图

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>mapbox</title><!-- 1、引入mapbox库以及它的样式 --><script src="../lib/mapbox.js"></script><link rel="stylesheet" href="../lib/mapbox.css"><style>* {margin: 0;padding: 0;}#map {width: 100vw;height: 100vh;z-index: 1;}select {position: absolute;top: 2%;left: 2%;z-index: 2;}</style>
</head><body><select name="" id="" onchange="changeStyle(event)"><option value="mapbox://styles/mapbox/light-v11">Mapbox Light</option><option value="mapbox://styles/mapbox/dark-v11">Mapbox Dark</option></select><select id="projection" name="projection" onchange="changeStyle(event)" style="margin-left: 120px;"><option value="mercator">Mercator</option><option value="globe">Globe</option><option value="albers">Albers</option><option value="equalEarth">Equal Earth</option><option value="equirectangular">Equirectangular</option><option value="lambertConformalConic" selected="">Lambert Conformal Conic</option><option value="naturalEarth">Natural Earth</option><option value="winkelTripel">Winkel Tripel</option></select><div id="map"></div><script>mapboxgl.accessToken = 'pk.eyJ1IjoiY2hlbmdjaGFvY2hhbyIsImEiOiJjbGU1aDZ2eWUwMXp4M29udmFnNnNyZjBhIn0.2Kd0ZX06ReEdBnZ9XU4XUA';// 3、创建地图const map = new mapboxgl.Map({/* 将地图挂载到对应的DOM上 相当于ol的target */container: "map",/* 相当于ol的layers */style: {"version": 8,"sources": {"raster-tiles": {"type": "raster","tiles": ["http://webrd01.is.autonavi.com/appmaptile?lang=zh_cn&size=1&scale=1&style=8&x={x}&y={y}&z={z}"],"tileSize": 256}},"layers": [{"id": "simple-tiles","type": "raster","source": "raster-tiles","minzoom": 0,"maxzoom": 22}]},center: [114.30, 30.50],zoom: 6,projection: 'globe'})function changeStyle(event) {// console.log(event)map.setStyle(event.target.value)}function changeProjection(event) {// console.log(event)map.setProjection(event.target.value)}</script>
</body></html>

04、设置大气层样式

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>mapbox</title><!-- 1、引入mapbox库以及它的样式 --><script src="../lib/mapbox.js"></script><link rel="stylesheet" href="../lib/mapbox.css"><style>*{margin: 0;padding: 0;}#map{width: 100vw;height: 100vh;}</style>
</head>
<body><div id="map"></div><script>mapboxgl.accessToken = 'pk.eyJ1IjoiY2hlbmdjaGFvY2hhbyIsImEiOiJjbGU1aDZ2eWUwMXp4M29udmFnNnNyZjBhIn0.2Kd0ZX06ReEdBnZ9XU4XUA';// 3、创建地图const map = new mapboxgl.Map({container:'map',    //指定地图容器idstyle:'mapbox://styles/mapbox/streets-v12', //地图风格center:[114.30,30.50],  //地图中心坐标  zoom:2,    //缩放比例});map.on('style.load',()=>{map.setFog({'color':'blue','high-color':'black','space-color':'red'})})</script>
</body>
</html>

05、地图事件

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>mapbox</title><!-- 1、引入mapbox库以及它的样式 --><script src="../lib/mapbox.js"></script><link rel="stylesheet" href="../lib/mapbox.css"><style>*{margin: 0;padding: 0;}#map{width: 100vw;height: 100vh;}btn1{position: fixed;top: 2%;left: 2%;z-index: 99;}btn2{position: fixed;top: 2%;left: 6%;z-index: 99;}</style>
</head>
<body><button class="btn1" onclick="mapTo()">跳转</button><button class="btn2" onclick="removeEvent()">移除</button><div id="map"></div><script>mapboxgl.accessToken = 'pk.eyJ1IjoiY2hlbmdjaGFvY2hhbyIsImEiOiJjbGU1aDZ2eWUwMXp4M29udmFnNnNyZjBhIn0.2Kd0ZX06ReEdBnZ9XU4XUA';// 3、创建地图const map = new mapboxgl.Map({container:'map',    //指定地图容器idstyle:'mapbox://styles/mapbox/streets-v12', //地图风格center:[114.30,30.50],  //地图中心坐标  zoom:12,    //缩放比例});function mapTo(){// map.setCenter([114.3,30.5])  //设置地图中心坐标 直接跳转地图map.flyTo({ //飞行到某个点,带飞行动画center:[118,38.5],zoom:8,speed:0.5,})// map.easeTo({    //缓慢的移过去  有过渡效果//     center:[112,30],//     duration:5000   //过渡时间 毫秒// })}// function showLonlat(e){//     console.log(e)// }// map.on('click',showLonlat)// function removeEvent(){//     map.off('click',showLonlat)// }</script>
</body>
</html>

06、定时器自转

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>mapbox</title><!-- 1、引入mapbox库以及它的样式 --><script src="../lib/mapbox.js"></script><link rel="stylesheet" href="../lib/mapbox.css"><style>*{margin: 0;padding: 0;}#map{width: 100vw;height: 100vh;}</style>
</head>
<body><div id="map"></div><script>mapboxgl.accessToken = 'pk.eyJ1IjoiY2hlbmdjaGFvY2hhbyIsImEiOiJjbGU1aDZ2eWUwMXp4M29udmFnNnNyZjBhIn0.2Kd0ZX06ReEdBnZ9XU4XUA';// 3、创建地图const map = new mapboxgl.Map({container:'map',    //指定地图容器idstyle:'mapbox://styles/mapbox/streets-v12', //地图风格center:[114.30,30.50],  //地图中心坐标  zoom:1,    //缩放比例});setInterval(() => {let center =map.getCenter()center.lng+=1map.easeTo({center:[center.lng,center.lat],duration:10,})// map.setCenter([c.lng++,lat++])}, 20);</script>
</body>
</html>

07、事件自转

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>mapbox</title><!-- 1、引入mapbox库以及它的样式 --><script src="../lib/mapbox.js"></script><link rel="stylesheet" href="../lib/mapbox.css"><style>* {margin: 0;padding: 0;}#map {width: 100vw;height: 100vh;}button {position: absolute;top: 2%;left: 2%;z-index: 2;}</style>
</head><body><button onclick="stop()">Stop</button><div id="map"></div><script>mapboxgl.accessToken = 'pk.eyJ1IjoiY2hlbmdjaGFvY2hhbyIsImEiOiJjbGU1aDZ2eWUwMXp4M29udmFnNnNyZjBhIn0.2Kd0ZX06ReEdBnZ9XU4XUA';// 3、创建地图const map = new mapboxgl.Map({container: 'map',    //指定地图容器idstyle: 'mapbox://styles/mapbox/streets-v12', //地图风格center: [114.30, 30.50],  //地图中心坐标  zoom: 1,    //缩放比例});function stop() {map.off('moveend', animatian)}function animatian() {let center = map.getCenter()center.lng += 1map.easeTo({center: [center.lng, center.lat],duration: 2,})}map.on('moveend', animatian)</script>
</body></html>

08、点击控制自转

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>mapbox</title><!-- 1、引入mapbox库以及它的样式 --><script src="../lib/mapbox.js"></script><link rel="stylesheet" href="../lib/mapbox.css"><style>* {margin: 0;padding: 0;}#map {width: 100vw;height: 100vh;}button {position: absolute;top: 2%;left: 2%;z-index: 2;}</style>
</head><body><button onclick="stop()">Stop</button><div id="map"></div><script>mapboxgl.accessToken = 'pk.eyJ1IjoiY2hlbmdjaGFvY2hhbyIsImEiOiJjbGU1aDZ2eWUwMXp4M29udmFnNnNyZjBhIn0.2Kd0ZX06ReEdBnZ9XU4XUA';// 3、创建地图const map = new mapboxgl.Map({container: 'map',    //指定地图容器idstyle: 'mapbox://styles/mapbox/streets-v12', //地图风格center: [114.30, 30.50],  //地图中心坐标  zoom: 1,    //缩放比例});function animatian() {let center = map.getCenter()center.lng += 1map.easeTo({center: [center.lng, center.lat],duration: 2,})}function toMove() {map.on('moveend', animatian)animatian()}function stopMove() {map.off('moveend', animatian)}let moving = falsemap.on('click', () => {if (moving) {toMove()} else {stopMove()}moving = !moving})</script>
</body></html>
http://www.lryc.cn/news/2417522.html

相关文章:

  • 分享26个ASP江湖论坛源码,总有一款适合您
  • 代码埋点、可视化埋点、无埋点几种数据埋点方案的分析报告
  • H5 画布解决跨域问题,画布保存为图片显示在页面上
  • 五分钟免费获得自己的永久域名,免费!永久!
  • 如何用Moco-runner搭建测试服务器?
  • 张柏芝现任丈夫是孙东海
  • OpenCV轻松入门(七)——HSV颜色模型图像特效案例:判断白天夜晚抠图颜色过滤替换背景图
  • 车辆管理系统的设计与实现-附源码031034
  • Android中APK安装过程及原理解析
  • Visual Studio Code 如何编写运行 C、C++ 程序?(高赞回答)
  • 摄影常用词:光圈、快门、曝光、底片、ISO、焦距、景深
  • Flink系列四:Flink中并行度、算子链、任务槽详解
  • 【艾琪出品】《计算机应用基础》【试题汇总1】
  • CTR(Click-Through-Rate)即点击通过率
  • 代码随想录学习记录——字符串篇
  • PLSQL_性能优化系列03_Oracle Parallel并发处理
  • 深入浅出达梦SQL(基础篇)
  • 李宏毅《机器学习》| 神经网络训练不起来怎么办(上)
  • C++ 应用软件开发从入门到实战详解
  • 使用Python编写圣诞树
  • 开源虚拟化管理平台Ovirt简介和配置环境搭建
  • 获取同局域网其他用户数据_一些无线局域网的专业名词解释
  • c++ png图片合成_前端小知识 | 合理选择 PNG, JPG, SVG 图片格式
  • 因找不到d3dcompiler_42.dll文件导致游戏软件无法运行问题
  • 吴恩达机器学习系列课程--个人笔记
  • 【DDoS】钟南山:对抗DDoS的5大手段
  • 如何卸载IE7重装IE6
  • go桌面主题制作工具——GO Dev Team
  • 自动化测试学习笔记
  • 番茄todo电脑版_好用到叫出声!10 款特别优秀的电脑软件,错过真可惜了