mapbox实现点选要素

2023-12-05

成果图

](https://img-blog.csdnimg.cn/direct/4e61853c0df547b8b5f333cd3077eb69.gif)

核心代码

核心逻辑就是指定一个唯一的高亮要素对象,全图监听点击事件,通过queryRenderedFeatures鼠标点拿到要素的id,然后将要素的状态改为选中,这样选中的要素的样式就会改为我们设置好的选中的样式,记住这个高亮对象,每次高亮的时候,将上一次的高亮要素的状态设置回未选中。

     //设置唯一高亮
     if (self.highLight.id !== null) {
       self.map.setFeatureState(
         { source: self.highLight.source, id: self.highLight.id },
         { select: false }
       );
     }
     self.highLight = {
       id:features[0].id,
       source:features[0].source
     };
     self.map.setFeatureState(
       { source: features[0].source, id: features[0].id },
       { select: true }
     );
//示例点线面样式
export const POINT_STYLE = {
    paint:{
        'circle-color': [
            'case',
            ['boolean', ['feature-state', 'select'], false],
            'rgb(0,255,255)',
            'orange'
        ],
    },
    layout: {
        visibility: 'visible',
    },
}
export const LINE_STYLE = {
    paint:{
        'line-color': [
            'case',
            ['boolean', ['feature-state', 'select'], false],
            'rgb(0,255,255)',
            '#ffffff'
        ],
        'line-width': [
            'case',
            ['boolean', ['feature-state', 'select'], false],
            8,
            2
        ],
    },
    layout: {
        visibility: 'visible',
    },
}
export const FILL_STYLE = {
    paint:{
        'fill-color': [
            'case',
            ['boolean', ['feature-state', 'select'], false],
            'rgb(0,255,255)',
             'orange'
        ],
        'fill-antialias': true,
        'fill-outline-color': "#ffffff",
        'fill-opacity': 0.5
    },
    layout: {
        visibility: 'visible',
    },
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

mapbox实现点选要素 的相关文章

  • 如何使用 Openlayers 文本图层编辑弹出窗口

    我正在使用 Openlayers 创建一个包含大约 1000 多个点的地图 目前 当我单击一个点的图标时 该点的描述会显示在弹出窗口中 要退出弹出窗口 我需要再次单击同一点的图标 有没有办法修改此代码 以便我可以按关闭按钮或单击地图上的任意
  • 更改 ggplot2 中栅格图的颜色

    由于一些不相关的原因 我尝试使用 ggplot2 而不是栅格包绘图函数来制作栅格图 我想缩放颜色 使图上的最低温度为蓝色 图上的最高温度为红色 而中间范围为白色 我已经尝试了 ggplot2 中的许多功能 但始终未能获得所需的结果 这就是我
  • 使用“gdal”将大彩色图像保存为“GTiff”

    我正在尝试保存尺寸较大的图像 15000 80000 3 这个数组是一个 numpy 数组 我初始化为im final np zeros 15000 80000 3 为了节省费用 我使用gdal像这样 dst ds gdal GetDriv
  • 如何在mapbox ios sdk中向MGLFillStyleLayer添加线宽属性?

    我必须使用 MGLPolygonFeature 在 MGLFillStyleLayer 中添加多边形特征 但问题是我无法更改轮廓宽度 线宽为MGLFillStyleLayer目前无法更改 建议的解决方法是使用相同的源来创建MGLLineSt
  • 地理数据网络服务

    我正在考虑编写一个程序来检查英国议会议员最近提出的一些里程声明 实际上大约有 45 000 个里程 我所掌握的数据相当准确 旅行的出发地和目的地通常仅 在城镇级别提供 我想做的基本上是查看他们提交的里程数据 查看从网络服务获得的 计算 里程
  • Mapbox GL JS:将基础层设置为白色?

    我想显示带有白色背景的 Mapbox GL JS 地图 而不是地图背景 这是我现在的代码 mapboxgl accessToken mytoken var map new mapboxgl Map container map style m
  • 如何将世界上所有国家/城市/州放入我的数据库?

    我有一个困难的架构和网络问题 我正在尝试为世界上每个城市制作一个关于徒步旅行的页面http www comehike com http www comehike com 我必须以某种方式导入世界上所有的城市 并按州构建它们 而州又按国家构建
  • 如何在 javascript google 地图 API 上使用米显示 geojson 数据

    GeoJson 文件坐标以 X Y 米为单位 而不是 lng lat 如何在谷歌地图上显示 GeoJson数据 type FeatureCollection features type Feature geometry type Multi
  • 从mapbox api获取建筑信息

    有没有办法从 Mapbox API 获取建筑信息 几何形状 高度等 我从这个例子开始 https www mapbox com mapbox gl js example 3d buildings https www mapbox com m
  • 在 Debian 上安装 PostGis 时出现错误“找不到 PGXS Makefile”

    我正在 Debian 机器上通过 psql 安装 PostGis 实际上是 crunchbang 我已完成以下步骤 wget http download osgeo org postgis source postgis 2 0 3 tar
  • SVG中的地理识别位置(GeoLocation/GeoTag)

    我想知道如何对 SVG 地图进行地理标记 我的搜索结果 地理标签以元数据格式提供 例如Exif http www awaresystems be imaging tiff tifftags privateifd gps html XMP h
  • 通过非 sf 列内连接两个 sf 对象

    我尝试使用内连接或左连接连接两个 sf 数据帧 这些数据框内部都有几何列 我不断收到错误 check join x y 中的错误 y 应该是一个数据框 对于空间连接 请使用 st joinFALSE 下面的可重现示例 df1 lt data
  • 老虎普查数据中的 Shape_area 和 ALAND AWATER

    Shape area 是什么意思 我注意到它不是 Aland 和 Awater 的总和 这三个的单位是什么 ALAND和AWATER的单位是平方米 例如 tl 2015 us county dbf康明县有记录ALAND 1477895811
  • 哪些应用程序使用 R 树?

    除了 GIS 应用程序之外 还有哪些其他应用程序或库使用 R 树及其变体 电脑游戏经常如此 这是一个很酷的链接 http en wikipedia org wiki MegaTexture Future Technology Evoluti
  • Mapbox 打字稿

    通过关注这个项目 我成功地让 Leaflet 与 Angular 2 和 Webpack 一起工作 Angular 2 传单启动器 https github com haoliangyu angular2 leaflet starter 我
  • 在 R 中,如何将 SpatialPolygons* 转换为地图对象

    我正在尝试利用ProportionalSymbolMap在此定义的地图JSS论文 http www jstatsoft org v15 i05 为了绘制比例符号 我首先需要一个地图类的对象 The methods http www ncea
  • 为什么mapbox-android sdk 无法从build.gradle 解析?

    我试图在这里设置基本教程 但我被 Android Studio 中的错误阻止 https docs mapbox com android maps overview install the maps sdk https docs mapbo
  • D3js:如何设计地形图?

    给定具有高程数据的 GIS 栅格 如何在D3js中设计地形图 有没有使用 D3js 制作的耕地地形图 地形图的示例 不工作 我探索了以下可能性 tif gt gdal contour py gt shp gt topojson gt d3j
  • Mapbox 关闭除一层之外的所有图层

    我是 Mapbox 和 javascript 的新手 我试图稍微修改一下 Mapbox GL 代码示例 发现here https www mapbox com mapbox gl js example toggle layers 允许打开
  • C#:如何确定坐标是否在美国大陆?

    我正在获取坐标 纬度 经度 我想检查这些坐标是否位于美国大陆 有没有一种简单的方法可以在 C 中实现 我可以将坐标转换为 MGRS 或 UTM 谢谢 哇哦 他们专门为你准备了 http econym org uk gmap states x

随机推荐

  • 视频压缩怎么操作?看完这篇你就知道了

    亲们 你们是否经常为了视频文件过大而烦恼呢 别担心 现在有了视频压缩软件 我们可以轻松解决这个问题 视频压缩软件不仅在日常生活中大放异彩 也在工作和娱乐中发挥着重要的作用 无论是想要分享视频给朋友 还是上传到社交平台或视频网站 视频压缩软件
  • 企业如何为自己的未来做准备?

    如果企业不为未来做准备 就要为出局做准备工作 德鲁克 随着市场需求的不断变化 企业面对着激烈的市场竞争 其该如何为自己的未来做准备 具体企业面临着 建立竞争优势 管理多元化员工队伍 应用新的信息系统与技术 首先 企业在市场竞争中想要建立自己
  • 强化元学习算法在机器人控制中的应用研究

    随着人工智能和机器学习的快速发展 强化学习作为一种重要的机器学习方法 被广泛应用于机器人控制领域 然而 传统的强化学习算法在面对复杂任务和多样化环境时往往需要大量的训练时间和样本 为了解决这个问题 强化元学习算法应运而生 本文将探讨强化元学
  • 微信小程序自定义数据实现级联省市区组件

    前言 在微信小程序中 官方文档提供的省市区组件 可以让用户更加方便快捷地选择省市区 但是官方提供的组件有一个缺点 无法自定义数据 但如果项目中需要使用自己的数据 显然就得寻找其它的组件实现 官方组件 优点 使用官方组件具有稳定性和兼容性 可
  • 137-基于stm32单片机智能保温杯控制装置Proteus仿真+源程序

    资料编号 137 一 功能介绍 1 采用stm32单片机 LCD1602显示屏 独立按键 DS18B20传感器 电机 制作一个基于stm32单片机智能保温杯控制装置Proteus仿真 2 通过DS18b20传感器检测当前保温杯水的温度 并且
  • C++单例模式

    pragma once namespace utility 需要拼接一下命名空间 utility define SINGLETON x friend class utility Singleton
  • 136-基于stm32单片机家庭温湿度防漏水系统设计Proteus仿真+源程序

    资料编号 136 一 功能介绍 1 采用stm32单片机 LCD1602显示屏 独立按键 DHT11传感器 蜂鸣器 制作一个基于stm32单片机家庭温湿度防漏水系统设计Proteus仿真 2 通过DHT11传感器检测当前温湿度 并且显示到L
  • 编程分为哪几种

    前言 编程是一项广泛的技能 涉及到许多不同的编程语言和编程领域 以下是编程的一些常见类型 应用程序开发 开发桌面应用程序 移动应用程序 网络应用程序 游戏等等 例如 Java C C Python Swift Objective C Kot
  • 135-基于stm32单片机超声波非接触式感应水龙头控制系统Proteus仿真+源程序

    资料编号 135 一 功能介绍 1 采用stm32单片机 LCD1602显示屏 独立按键 DHT11传感器 电机 超声波传感器 制作一个基于stm32单片机超声波非接触式感应水龙头控制系统Proteus仿真 2 通过DHT11传感器检测当前
  • 使用python streamlit库快速创建一个购物网站

    streamlit Streamlit 是一个基于 Python 的 Web 应用程序框架 致力于以更高效 更灵活的方式可视化数据 并分析结果 Streamlit是一个开源库 可以帮助数据科学家和学者在短时间内开发机器学习 ML 可视化仪表
  • 强化学习在机器人导航中的路径规划策略分析

    机器人导航是指机器人在未知环境中自主移动的过程 路径规划是机器人导航中的一个重要问题 其目的是找到一条最优路径 使机器人能够快速 安全地到达目的地 传统的路径规划方法往往基于启发式算法 如A 算法 Dijkstra算法等 这些方法在一定程度
  • InterLM代码解析

    interLM的Transformer架构 重要模块的实现解析 Decoder架构 class InternLMDecoderLayer nn Module def init self config InternLMXComposerCon
  • 服务器托管与服务器租用的详细比较

    在当今数字化时代 服务器托管和服务器租用成为了许多企业和个人选择的两种常见方式 它们都提供了一种将服务器放置在专业机房中的解决方案 但在具体实施和使用过程中存在一些差异 下面将详细比较这两种方式的优势和劣势 1 服务器托管 服务器托管是指用
  • 详解Spring中的Profile

    详解Spring中的Profile 一 前言 二 Spring中的Profile 是什么 三 配置Spring profile 3 1 例子需要的Maven依赖 3 2 例子代码 四 激活Profile的其他几种方式 一 前言 由于在项目中
  • 赚了!用Python兼职,月赚49K!

    大家好 先说个冷知识 现在业界对Python技术服务的需求量正在暴涨 当下早已供不应求 且有愈演愈烈的趋势 极不平衡的供需关系 使Python兼职的价格变得极高 几乎所有的Python圈内人 都在利用Python写代码接私活赚钱 近期Pyt
  • 【uniapp】小程序中input输入框的placeholder-class不生效解决办法

    问题描述 uniapp微信小程序 使用input组件时 想要改变提示词 placeholder 的样式 但是使用 placeholder class 改变不了 如下
  • 光环云与亚马逊云科技成功举办“合作伙伴成长峰会:赋能与共赢”活动

    光环云作为由光环新网和西云数据所提供的亚马逊云科技中国区域推广计划的授权增值推广商 致力于帮助中国企业更加方便 高效 安全地享受亚马逊云科技云服务 加速数字化转型 2023年11月29日 光环云携手亚马逊云科技和商礼科技成功举办 合作伙伴成
  • Linux 编译安装colmap

    COLMAP可以作为独立的app 通过命令行或者图形交互界面使用 也可以作为一个库被包含到其他源代码中 这里记录一下编译安装colmap的过程 首先需要安装好CUDA CUDA具体安装过程这里就不赘述了 在GitHub上下载源代码 我这里就
  • VIM使用快捷键快速移动到某个位置

    光标移动到行首 行首没有空格 光标移动到行首 行首有空格 数字0 光标移动到行尾 移动到指定行 7G 数字加一个大G 光标移动到文件开始 gg 两个小g 光标移动到文件末尾 G 一个大G 窗口向上滚动一行 Ctrl e scroll up
  • mapbox实现点选要素

    成果图 核心代码 核心逻辑就是指定一个唯一的高亮要素对象 全图监听点击事件 通过queryRenderedFeatures鼠标点拿到要素的id 然后将要素的状态改为选中 这样选中的要素的样式就会改为我们设置好的选中的样式 记住这个高亮对象