uni-app 安卓端地图动态添加marker(要有气泡文案 可点击) 拖拽选址功能 #插件需求#替换为空格 (有偿)

发布于 1周前 作者 eggper 来自 Uni-App

uni-app 安卓端地图动态添加marker(要有气泡文案 可点击) 拖拽选址功能 #插件需求#替换为空格 (有偿)

开发环境 版本号 项目创建方式
  1. 地图动态添加marker( 要有气泡文案 可点击 )
  2. 拖拽选址功能(当前地址信息显示再气泡文案上)
  3. 多注释
5 回复

ok 让我学习一下。

针对您提出的uni-app在安卓端地图动态添加带有气泡文案且可点击的marker,并实现拖拽选址功能的需求,以下是一个简单的代码示例。由于uni-app本身集成了对地图的支持,我们可以利用map组件来实现这些功能。

代码示例

1. 在页面的<template>部分添加map组件

<template>
  <view>
    <map
      id="map"
      :longitude="longitude"
      :latitude="latitude"
      :scale="scale"
      :markers="markers"
      show-location
      style="width: 100%; height: 100%;"
      @tap="onMapTap"
      @markerTap="onMarkerTap"
      @calloutTap="onCalloutTap"
      @regionchange="onRegionChange"
    >
      <cover-view marker-id="{{marker.id}}" wx:for="{{markers}}" wx:key="id" class="marker-cover">
        <cover-view class="drag-handle" bindtouchstart="onDragStart" bindtouchmove="onDragMove" bindtouchend="onDragEnd" data-id="{{marker.id}}" style="top: {{marker.top}}px; left: {{marker.left}}px;"></cover-view>
      </cover-view>
    </map>
  </view>
</template>

2. 在页面的<script>部分处理逻辑

export default {
  data() {
    return {
      longitude: 116.404, // 默认经度
      latitude: 39.915, // 默认纬度
      scale: 14, // 缩放级别
      markers: [
        {
          id: 1,
          latitude: 39.915,
          longitude: 116.404,
          iconPath: '/static/marker.png',
          width: 50,
          height: 50,
          callout: {
            content: '点击我',
            bgColor: '#fff',
            padding: 5,
            borderRadius: 5,
            display: 'ALWAYS'
          },
          top: -50, // 初始位置调整
          left: -25
        }
      ],
      draggingMarker: null, // 当前拖拽的marker
      startPoint: {} // 拖拽开始的位置
    };
  },
  methods: {
    // 省略onDragStart, onDragMove, onDragEnd等方法的实现,这些方法用于处理拖拽逻辑
    // ...
  }
};

3. 在页面的<style>部分添加样式

<style scoped>
.marker-cover {
  position: relative;
  width: 100%;
  height: 100%;
}
.drag-handle {
  position: absolute;
  width: 50px;
  height: 50px;
  background: rgba(255, 255, 255, 0.7);
  border: 1px solid #000;
  border-radius: 50%;
  cursor: move;
}
</style>

注意事项

  • 由于uni-app的map组件在不同平台(如微信小程序、H5、App等)上可能存在细微差异,确保在目标平台(如安卓端)上进行充分测试。
  • 拖拽功能的实现可能需要根据具体需求调整,如限制拖拽范围、处理边界情况等。
  • 气泡文案的显示样式和内容可以根据实际需求进行自定义。

上述代码提供了一个基础框架,您可以根据具体需求进一步丰富和完善功能。

回到顶部