高德地图安卓sdk,在uniapp中实现,地图上多个坐标点,点击坐标点,显示坐标信息

 

<template>
    <view class="content">
        <map id="map" :style="{ width: '100%', height: '50vh' }" :markers="markers" :longitude="longitude"
            :latitude="latitude" :scale="scale" @markertap="markerTap"></map>
        <view class="info-view" v-if="selectedMarker.title">
            <view class="info-title">{{ selectedMarker.title }}</view>
            <view class="info-description">{{ selectedMarker.description }}</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: '这是中国北京的中心地标之一。'
                }, {
                    id: 1,
                    longitude: 116.402854, // 经度值:北京国家体育场
                    latitude: 39.99285, // 纬度值:北京国家体育场
                    iconPath: '/static/logo/58x58.png',
                    width: 50,
                    height: 50,
                    title: '北京国家体育场',
                    description: '俗称“鸟巢”,是2008年北京奥运会的主体育场。'
                }],
                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;
    }

    .popup-info {
        padding: 20px;
        z-index: 1000;
        /* 确保这个值高于其他内容 */
        position: relative;
        /* z-index 需要一个定位上下文 */
    }

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

    .popup-description {
        font-size: 16px;
    }

    .info-view {
        padding: 20px;
        background-color: #fff;
        /* 白色背景 */
        border-top: 1px solid #ccc;
        /* 上边框 */
        box-shadow: 0 -5px 10px rgba(0, 0, 0, 0.1);
        /* 阴影效果 */
    }

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

    .info-description {
        font-size: 16px;
    }

    .debug-info {
        /* position: absolute;
        bottom: 0;
        left: 0; */
        /*     width: 100%; */
        background-color: rgba(0, 0, 0, 0.7);
        color: white;
        padding: 10px;
        text-align: center;
    }
</style>

 

posted @ 2024-05-22 10:15  有只小菜猫  阅读(286)  评论(0编辑  收藏  举报