从零开始Vue项目中使用MapboxGL开发三维地图教程(二)Mapbox地图样式

news2024/11/14 22:43:28

Mapbox地图样式

      • 1、Mapbox地图样式定义
      • 2、Mapbox默认地图样式
      • 3、Mapbox地图样式对象
      • 4、切换地图样式的案例

1、Mapbox地图样式定义

Mapbox地图样式:按照Mapbox地图样式规范中描述的模式定义的一个JSON对象,或者是此类JSON的URL。可以接受null值以允许手动添加样式。

要从Mapbox API加载样式,可以使用表单的URL

mapbox://styles/:owner/:style

其中:owner是您的Mapbox帐户名,:style是样式ID。

2、Mapbox默认地图样式

样式名称样式URL样式image
Mapbox Streets街道底图mapbox://styles/mapbox/streets-v12在这里插入图片描述
Mapbox Outdoors户外底图mapbox://styles/mapbox/outdoors-v12在这里插入图片描述
Mapbox Lightmapbox://styles/mapbox/light-v11在这里插入图片描述
Mapbox Darkmapbox://styles/mapbox/dark-v11在这里插入图片描述
Mapbox Satellite卫星底图mapbox://styles/mapbox/satellite-v9在这里插入图片描述
Mapbox Satellite Streets卫星街道混合底图mapbox://styles/mapbox/satellite-streets-v12在这里插入图片描述
Mapbox Navigation Day导航底图(白天)mapbox://styles/mapbox/navigation-day-v1在这里插入图片描述
Mapbox Navigation Night导航底图(晚上)mapbox://styles/mapbox/streets-v12在这里插入图片描述

3、Mapbox地图样式对象

Mapbox地图样式对象样式对象必须符合以下规则:

  • 必须是有效的JSON

  • 必须与地图框样式规范的最新版本对齐

  • 可由不超过15个来源组成

  • 样式正文中不能包含样式规范中列出的键以外的任何键

  • 源对象中的url属性必须是有效的Mapbox集合ID

  • 仅支持光栅和矢量源

mapbox地图样式对象例子:

{
  "version": 8,
  "name": "{name}",
  "metadata": "{metadata}",
  "sources": "{sources}",
  "sprite": "mapbox://sprites/{username}/{style_id}",
  "glyphs": "mapbox://fonts/{username}/{fontstack}/{range}.pbf",
  "layers": ["{layers}"],
  "created": "2015-10-30T22:18:31.111Z",
  "id": "{style_id}",
  "modified": "2015-10-30T22:22:06.077Z",
  "owner": "{username}",
  "visibility": "private",
  "protected": false,
  "draft": true
}

样式对象属性说明表:

PropertyTypeDescription
versionnumberThe style specification version number.
namestringA human-readable name for the style.
metadataobjectInformation about the style that is used in Mapbox Studio.
sourcesobjectSources supply the data that will be shown on the map.
layersarrayLayers will be drawn in the order of this array.
createdstringThe date and time the style was created.
idstringThe ID of the style.
modifiedstringThe date and time the style was last modified.
ownerstringThe username of the style owner.
visibilitystringAccess control for the style, either public or private. Private styles require an access token belonging to the owner. Public styles may be requested with an access token belonging to any user.
protectedbooleanIndicates whether the style is protected (true) or not (false). Protected styles cannot be edited and deleted.
draftbooleanIndicates whether the style is a draft (true) or whether it has been published (false).

4、切换地图样式的案例

完整代码(vue版本):

<template>
  <div>
    <div id="map"></div>

    <div id="menu">
      <input
        id="satellite-streets-v12"
        type="radio"
        name="rtoggle"
        value="satellite"
        checked="checked"
      />
      <!-- See a list of Mapbox-hosted public styles at -->
      <!-- https://docs.mapbox.com/api/maps/styles/#mapbox-styles -->
      <label for="satellite-streets-v12">卫星街道混合</label>
      <input id="light-v11" type="radio" name="rtoggle" value="light" />
      <label for="light-v11">亮色</label>
      <input id="dark-v11" type="radio" name="rtoggle" value="dark" />
      <label for="dark-v11">暗色</label>
      <input id="streets-v12" type="radio" name="rtoggle" value="streets" />
      <label for="streets-v12">街道</label>
      <input id="outdoors-v12" type="radio" name="rtoggle" value="outdoors" />
      <label for="outdoors-v12">户外</label>
    </div>
  </div>
</template>

<script>
export default {
  data() {
    return {
      map: null,
    };
  },

  components: {},
  created() {},
  mounted() {
    this.initmap();
  },
  computed: {},

  methods: {
    initmap() {
      this.$mapboxgl.accessToken =
        "pk.xxxoidGlnZXJiZ3AyMDIwIiwiYSI6ImNsaGhpb3Q0ZTBvMWEzcW1xcXd4aTk5bzIifQ.4mA7mUrhK09N4vrrQfZA_Q";

      this.map = new this.$mapboxgl.Map({
        container: "map",
        style: "mapbox://styles/mapbox/satellite-streets-v12", //mapbox://styles/mapbox/satellite-streets-v12
        projection: "globe",
        center: [104.07, 30.67],
        zoom: 3,
        // pitch: 60, //视野倾斜,0-60
        // bearing: -17.6,//视野旋转角度
      });
      const layerList = document.getElementById("menu");
      const inputs = layerList.getElementsByTagName("input");

      for (const input of inputs) {
        input.onclick = (layer) => {
          const layerId = layer.target.id;
          this.map.setStyle("mapbox://styles/mapbox/" + layerId);
        };
      }
	}
  },
};
</script>

<style>
body {
  margin: 0;
  padding: 0;
}
#map {
  position: absolute;
  top: 0;
  bottom: 0;
  width: 100%;
}

#menu {
  position: absolute;
  background: #efefef;
  padding: 10px;
  font-family: "Open Sans", sans-serif;
}
</style>


效果图:
在这里插入图片描述
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/638207.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【图像处理】图像白平衡处理

一、说明 这就是我们今天要说的——图像增强&#xff01;图像增强由一组用于优化图像的技术组成。这样&#xff0c;图像在视觉上变得更容易被人类感知&#xff0c;这反过来将进一步促进改进的图像处理分析。图像增强处理技术包括以下几种&#xff1a; 傅里叶变换 白平衡 直方…

python开发的连连看小游戏

说明&#xff1a; 1.在网上找了一个基础版本改进而来&#xff0c;大概增加了200行代码&#xff0c;相对原版要复杂了一些&#xff1b; 2.界面采用tkinter开发&#xff0c;比较简单&#xff1b; 3.新增了连接连功能&#xff1b; 4.新增了积分功能&#xff1b; 5.新增了陷入…

python套接字(一):socket的使用

文章目录 前言一、什么是套接字&#xff1f;二、python中套接字的常用方法三、使用1、服务器端代码2、客户端代码 前言 最近研究了一下python的socket的使用&#xff0c;特此记录下来&#xff0c;方便以后参考。 一、什么是套接字&#xff1f; 套接字(Socket)&#xff0c;就…

线上展览平台平台有哪些?蛙色3D虚拟展厅平台简介

导语&#xff1a; 随着科技的飞速发展和全球化的趋势&#xff0c;线上展览平台正日益受到关注和重视。它们成为了传统展览方式的有力补充&#xff0c;为各行业提供了一个全新的展示和交流平台。 我们将一起探索当今主流的线上展览平台&#xff0c;并重点介绍蛙色3D虚拟展厅平台…

jmeter如何将上一个请求的结果作为下一个请求的参数

目录 1、简介 2、用途 3、下载、简单应用 4、如何将上一个请求的结果作为下一个请求的参数 1、简介 在JMeter中&#xff0c;可以通过使用变量来将上一个请求的结果作为下一个请求的参数传递。 ApacheJMeter是Apache组织开发的基于Java的压力测试工具。用于对软件做压力测…

网络安全(黑客)怎么自学?

最近看到很多问题&#xff0c;都是小白想要转行网络安全行业咨询学习路线和学习资料的&#xff0c;作为一个培训机构&#xff0c;学习路线和免费学习资料肯定是很多的。机构里面的不是顶级的黑阔大佬就是正在学习的同学&#xff0c;也用不上这些内容&#xff0c;每天都在某云盘…

Win10系统怎么设置滑动打开组合框?

Win10系统怎么设置滑动打开组合框&#xff1f;Win10系统戏中用户想要设置一下滑动打开组合框&#xff0c;但不知道怎么操作&#xff0c;用户需要打开Win10系统的高级系统设置选项&#xff0c;点击高级选项找到视觉效果选项&#xff0c;勾选滑动打开组合框选项保存即可。 解决方…

Unity入门3——脚本基础

一、生命周期函数 ​ 所有继承 MonoBehavior 的脚本&#xff0c;最终都会挂载到 GameObject 游戏对象上 ​ 生命周期函数就是该脚本对象依附的 GameObject 对象从出生到消亡整个生命周期中 ​ 会通过反射自动调用的一些特殊函数 ​ Unity 帮助我们记录了一个 GameObject 对象依…

OpenShift Route 的实现原理

OpenShift Route 的实现原理 OpenShift 如何使用 HAProxy 实现 Router 和 RouteRouter appHAProxy 配置1. HTTP2. HTTPS OpenShift 中的 Route 解决了从集群外部访问服务的需求&#xff0c;与 Kubernetes 中的 Ingress 类似。 OpenShift 中 Route 资源 API 定义如下&#xff1…

解剖学关键点检测方向论文翻译和精读:基于热力图回归的CNN融入空间配置实现关键点定位

解剖学关键点检测方向论文翻译和精读&#xff1a;Integrating spatial configuration into heatmap regression based CNNs for landmark localization Abstract: In many medical image analysis applications, only a limited amount of training data is available due to t…

Pyinstaller 打包 paddle出现的问题

目录 问题解决方法 1.找到自己项目所需要的包 2.使用【auto-py-to-exe】库&#xff0c;添加对应项目对应的包 --add-data 需要添加的文件 --hidden-import 需要添加的文件 问题来源 问题解决思路 问题解决方法 1.找到自己项目所需要的包 这里可以参考博主的另外一篇文章&…

大模型当私人法律顾问?北大团队推出法律大模型,数据与模型全部开源!

作者 | 小戏、Python “要是我有一个学法的朋友就好了” 法律作为我们社会生活的最高指引&#xff0c;其重要性毋庸多言。然而类似于医学&#xff0c;法律又是一个入行门槛非常高的专业领域&#xff0c;想想通过率不到 10% 的法考&#xff0c;显然遇到法律相关的专业问题不太支…

mysql中SQL语句查询字段相加的和,以及更改小数精确位。和查询SQL语句结果相减的SQL查询

最近在工作中碰到了SQL进行查询&#xff0c;用户缴费以及退费信息的工作&#xff0c;以及查询完后需要修改SQL结果后小数位的需求&#xff0c;整理结果如下: 首先&#xff0c;看内容&#xff1a; 如图&#xff0c;operate_type代表缴费与退费&#xff0c;分别用0和1区别。 #…

快速教你如何使用postman工具进行接口测试?(配置全局token、JWT可用)

现在很多人都在使用前后端分离进行项目开发&#xff0c;那在后端开发过程中使用postman测试工具可快速便捷完成接口测试。但是在测试过程中&#xff0c;很多人发现因为JWT的鉴权&#xff0c;导致半个小时就需要更新一下token&#xff0c;让我们的测试变得复杂。 若是将token作…

【JUC中的 “8锁现象” 】 —— 每天一点小知识

&#x1f4a7; J U C 中的“ 8 锁现象” \color{#FF1493}{JUC中的 “8锁现象” } JUC中的“8锁现象”&#x1f4a7; &#x1f337; 仰望天空&#xff0c;妳我亦是行人.✨ &#x1f984; 个人主页——微风撞见云的博客&#x1f390; &#x1f433; 《数据结构与算法》…

python基础学习3【NumPy矩阵与通用函数【矩阵相乘+平方+广播机制+转置】+ save、load、sort、repeat、unique、鸢尾花1】

NumPy矩阵与通用函数 a np.mat([[1,2],[3,4]])#生成矩阵b np.matrix([[1,7],[6,4]])np.bmat("a b") 矩阵的运算 矩阵特有属性&#xff1a; 属性 说明 T自身转置H共轭转置I逆矩阵A自身数据的二维数据视图 例如&#xff1a; np.matrix(a).T 矩阵相乘&#xff1a;…

【Map集合的基本功能】

Map集合的基本功能 V put(K key,V value)&#xff1a;添加元素 V remove(K key,V value)&#xff1a;根据键删除键值对元素 package com.gather.map; //Map集合常用的基本功能 import java.util.HashMap; import java.util.Map; public class MapDemo02 {public static void m…

Flutter:路由、拦截返回事件、自定义独立路由

路由堆栈 Flutter 路由管理中有两个非常重要的概念&#xff1a; Route&#xff1a;路由是应用程序页面的抽象&#xff0c;对应 Android 中 Activity 和 iOS 中的 ViewController&#xff0c;由 Navigator 管理。Navigator&#xff1a;Navigator 是一个组件&#xff0c;管理和…

哈希表--想彻底了解哈希表,看这一篇文章就可以了

为了一次存储便能得到所查记录&#xff0c;在记录的存储位置和它的关键字之间建立一个确定的对应关系H&#xff0c;已H&#xff08;key)作为关键字为key的记录在表中的位置&#xff0c;这个对应关系H为哈希&#xff08;Hash&#xff09;函数&#xff0c; 按这个思路建立的表为哈…

【Leetcode】 1071. 字符串的最大公因子

For two strings s and t, we say “t divides s” if and only if s t ... t (i.e., t is concatenated with itself one or more times). Given two strings str1 and str2, return the largest string x such that x divides both str1 and str2. Example 1: Input: s…