首页 > 其他分享 >uniapp中,首先显示一个大的地图,点击地图上的点,缩小地图并且在下方显示地图上的点对应的内容

uniapp中,首先显示一个大的地图,点击地图上的点,缩小地图并且在下方显示地图上的点对应的内容

时间:2024-05-24 15:42:11浏览次数:25  
标签:uniapp 显示 title debugInfo 地图 markerId selectedMarker marker

<template>
    <view class="content">
        <map id="map" :style="{ width: '100%', height: selectedMarker.title?'50vh':'76vh',zIndex:'500' }" :markers="markers" :longitude="longitude"
            :latitude="latitude" :scale="scale" @markertap="markerTap">
        </map>
        <view class="info-view" :style="{ visibility: selectedMarker.title ? 'visible' : 'hidden' }" style="position:fixed;bottom:17vw;width: 95%;">
            <view class="flex justify-between padding">
                <view class="flex">
                    <image src="../../static/moren.jpeg" mode="" class="alarm_iamge"></image>
                    <view class="flex flex-direction justify-between align-center">
                        <span class="alarm_name text-bold">{{ selectedMarker.name }}</span>
                        <span>【{{ selectedMarker.zhuang }}】</span>
                    </view>
                </view>
                <view class="">
                    <view class="flex align-center justify-between">
                        <span class="text-bold">{{ selectedMarker.dian }}%</span>
                        <image class="Personnel_image" src="../../static/DL.png" mode=""></image>
                    </view>
                    <view class="flex align-center  justify-between">
                        <span class="text-bold">{{ selectedMarker.wen }}°C</span>
                        <image class="Personnel_image" src="../../static/WDJ-01.png" mode=""></image>
                    </view>
                </view>

            </view>
            <view class="flex justify-between">
                <view class="padding" style="background-color: azure;width: 75%;border-radius: 5px;">
                    <view class="flex justify-between margin-bottom-sm">
                        <view class="flex align-center">
                            <image class="Personnel_image margin-right-xs" src="../../static/heart.png" mode=""></image>
                            <span class="text-bold">心率:{{ selectedMarker.xinlv }}(次/分)</span>
                        </view>
                        <view class="flex align-center">
                            <image class="Personnel_image margin-right-xs" src="../../static/XY-copy.png" mode="">
                            </image>
                            <span class="text-bold">血氧:{{ selectedMarker.xueyang }}%</span>
                        </view>
                    </view>
                    <view class="flex justify-between margin-bottom-sm">
                        <view class="flex align-center">
                            <image class="Personnel_image margin-right-xs" src="../../static/BS.png" mode=""></image>
                            <span class="text-bold">步数:{{ selectedMarker.steps }}</span>
                        </view>
                        <view class="flex align-center">
                            <image class="Personnel_image margin-right-xs" src="../../static/SM.png" mode=""></image>
                            <span class="text-bold">睡眠:{{ selectedMarker.sleep }}</span>
                        </view>
                    </view>
                    <view class="flex justify-between">
                        <view class="flex align-center">
                            <image class="Personnel_image margin-right-xs" src="../../static/SSYSZY.png" mode="">
                            </image>
                            <span class="text-bold">血压:{{ selectedMarker.xueya}}mmHg</span>
                        </view>
                    </view>
                </view>
                <view class="flex justify-center align-center"
                    style="width:20%;background-color: darkseagreen;border-radius: 5px;color: white;">
                    <span>导航</span>
                </view>
            </view>
        </view>
        <!-- <view class="debug-info">
            {{ debugInfo }}
        </view> -->
    </view>
</template>

<script>
    export default {
        name: 'HomeMap',
        data() {
            return {
                longitude: 116.397128,
                latitude: 39.916527,
                scale: 10,
                debugInfo: '', // 用于存储调试信息
                markers: [{
                    id: 0,
                    longitude: 116.397128,
                    latitude: 39.916527,
                    iconPath: '/static/logo/58x58.png',
                    width: 50,
                    height: 50,
                    title: '天安门',
                    description: '这是中国北京的中心地标之一。',
                    image: '/static/mmmoren.jpeg',
                    name: '张三',
                    zhuang: '在线',
                    dian: '75',
                    wen: '36.5',
                    xinlv: '78',
                    xueyang: '98',
                    xueya: '120/80',
                    steps: '5600',
                    sleep: '良好'
                }, {
                    id: 1,
                    longitude: 116.402854, // 经度值:北京国家体育场
                    latitude: 39.99285, // 纬度值:北京国家体育场
                    iconPath: '/static/logo/58x58.png',
                    width: 50,
                    height: 50,
                    title: '北京国家体育场',
                    description: '俗称“鸟巢”,是2008年北京奥运会的主体育场。',
                    image: '/static/logo.png',
                    name: '李四',
                    zhuang: '在线',
                    dian: '75',
                    wen: '36.5',
                    xinlv: '78',
                    xueyang: '98',
                    xueya: '120/80',
                    steps: '5600',
                    sleep: '良好'
                }],
                selectedMarker: {},
            };
        },
        methods: {
            markerTap(e) {
                const markerId = e.detail.markerId; // 从事件对象中获取 markerId
                this.debugInfo = `Marker ID: ${markerId}`;
                const marker = this.markers.find(marker => marker.id === markerId);
                if (marker) {
                    this.debugInfo += ` | Found marker: ${marker.title}`;
                    this.selectedMarker = marker; // 更新选中的标记点数据

                } else {
                    this.debugInfo += ' | No marker found';
                    this.selectedMarker = {};
                }
            },
        },
    };
</script>

<style>
    .content {
        width: 100%;
        height: 100vh;
        position: relative;

    }



    .info-title {
        font-size: 18px;
        font-weight: bold;
        margin-bottom: 10px;
    }

    .info-description {
        font-size: 16px;
        word-wrap: break-word;
        overflow-wrap: break-word;
        /* 保证在单词中间换行 */
    }

    .debug-info {

        background-color: rgba(0, 0, 0, 0.7);
        color: white;
        padding: 10px;
        text-align: center;
    }


    .info-view {    
        border: 1px solid black;
        border-radius: 5px;
        box-shadow: 0 0 5px rgba(0, 0, 0, 0.3);
    }
</style>

 

标签:uniapp,显示,title,debugInfo,地图,markerId,selectedMarker,marker
From: https://www.cnblogs.com/le-cheng/p/18211032

相关文章

  • vue + websocket + speak-tts 实现推送的告警消息弹框显示在右下角并语音播报出内容
    最近接了个项目需求,给设备配置语音加弹框告警。用户登录项目后不管在哪个页面,有告警就全局在右下角消息弹框加语音播报,下面浅介绍下我在开发中的流程以及遇到的坑!!!1、首先项目中安装speak-tts语音播报插件。npminstallspeak-tts2、创建一个全局的speech.js文件,文件中引入插......
  • 微信小程序中页面显示时触发子组件的重新渲染
    使用生命周期函数:在页面的onShow或onLoad生命周期函数中,调用子组件的方法或者改变子组件的数据,从而触发子组件的重新渲染。例如,在页面的js文件中:Page({onShow:function(){//调用子组件的方法this.selectComponent('#childComponentId').refreshDa......
  • 显示更多组件
    文章目录1.概念介绍2.实现方法3.示例代码4.内容总结我们在上一章回中介绍了"关于MediaQuery的优化"相关的内容,本章回中将介绍readMore这个三方包.闲话休提,让我们一起TalkFlutter吧。1.概念介绍我们在本章回中介绍的readMore是一个三方包,它主要用来折叠和展......
  • netcore webapi部署到docker容器,api调用后显示中文乱码
    vs2022webapi部署到docker容器,api调用后显示中文乱码。原因是:源代码文件不是utf-8编码(用vscode打开是乱码,在vscode修改后,再提交,正常)解决方法:在中文环境下用过微软家Visualstudio的都知道,新建文件的保存编码都默认为当前系统语言,所以你的文件编码永远都是GB2312,非常令人蛋......
  • 百问网,T113 usb摄像头使用cpu解码显示
    1资料下载https://download.100ask.net/boards/Allwinner/T113/index.html2软件安装资料下载完毕后,根据说明,安装vmware,安装win驱动3配置开发环境为了方便,建议将sdk文件上传到目录/home/book/安装必要的工具包,如果出现问题Couldnotgetlock/var/lib/dpkg/lock-......
  • uniapp实现左滑显示编辑删除按钮
     【使用时可删除不必要的内容,我就是记录一下】方法一:详细借鉴(app):http://www.aliyue.net/10130.html方法二:详细借鉴(微信小程序):https://blog.csdn.net/weixin_41579185/article/details/117747252?spm=1001.2101.3001.6650.2&utm_medium=distribute.pc_relevant.none-task-blog-......
  • NPOI创建word文档,使用unicode写入打勾的小方框,word2021显示异常问题解决
    word2019查看NPOI创建的word中打勾方框,显示正常,但是word2021显示就变成下面这个样子了,应该是word2021对这个特殊字符的渲染导致的 想要普通的效果,白色背景黑边黑勾的效果,换一个字体可以解决 c# 代码XWPFDocumentdocument=newXWPFDocument();XWPFParagraphparagrap......
  • Java如何显示不同字体的文字?
    Java如何显示不同字体的文字?在Java的GUI编程中,如何显示不同字体的文字?以下示例演示如何使用Font类的setFont()方法显示不同字体的文本。packagecom.yiibai;importjava.awt.*;importjava.awt.event.*;importjavax.swing.*;publicclassDisplayTextFontextendsJPane......
  • uniapp中使用mqtt.js的踩坑记录
    最近在uniapp的vue3.0版本中使用mqtt.js库时遇到了一些坑,经过亲身踩坑,现在把实际能够实现在uniapp的app端能够使用mqtt.js的方法步骤记录如下:一、安装首先安装mqtt.js,建议使用较为稳定的3.0.0版本:[email protected]二、引入mqtt.jsimportmqttfrom'mqtt/dist/mqtt.......
  • uniapp 闪屏页被拉伸解决方案 9图制作
    问题当闪屏页是一张图的时候,针对不同分辨率,容易被拉伸解决9图制作(必须是纯色背景)首先拿一张png图用安卓studio打开,就生产了一张9图然后进行9图制作右侧画边,底部画边,然后左边和顶部,利用画边,把可以拉伸的描出来在uniapp里面设置附送大佬的视频https://www.bilibil......