uni-app nvue在iOS使用Google地图时 circles不能清除掉

发布于 1周前 作者 yuanlaile 来自 uni-app

uni-app nvue在iOS使用Google地图时 circles不能清除掉

操作步骤

  1. 点击删除
  2. 点击新增

预期结果

能正常清除circles

实际结果

不能正常清除circles

bug描述

下面有模版代码在iOS会复现这个谷歌地图circles不能清除掉

开发环境与版本信息

项目创建方式 HBuilderX
PC开发环境操作系统 Mac
PC开发环境操作系统版本号 M1
HBuilderX类型 正式
HBuilderX版本号 4.07
手机系统 iOS
手机系统版本号 iOS 15
手机厂商 苹果
手机机型 iPhone11
页面类型 vue
vue版本 vue2
打包方式 云端

复现.zip


6 回复

HBuilderX 4.25.2024081703-alpha 已修复。


ios的uni.onNetworkStatusChange毕现闪退处理一下、有上传代码案例、https://ask.dcloud.net.cn/question/196867

文档写的谷歌地图要使用nvue,请尽快处理此必现问题

nvue 已不再维护,不过 map 的Bug还会处理,这个问题会在下个版本修复

你好,请问这个问题修复了吗

在uni-app中使用nvue开发iOS应用时,如果你遇到在使用Google地图时无法清除circles的问题,这通常是由于地图组件的某些特性或限制导致的。虽然具体的API和文档可能有所差异,但我们可以尝试通过一些编程技巧来解决这个问题。以下是一个示例代码,展示如何在nvue中操作Google地图并尝试清除circles。

首先,确保你已经在项目中集成了Google Maps SDK,并且已经正确配置了相关的API密钥。

<template>
  <div>
    <map id="map" :longitude="longitude" :latitude="latitude" style="width: 100%; height: 100%;" />
    <button @click="addCircle">Add Circle</button>
    <button @click="clearCircles">Clear Circles</button>
  </div>
</template>

<script>
export default {
  data() {
    return {
      map: null,
      circles: [],
      longitude: 116.404,
      latitude: 39.915
    };
  },
  mounted() {
    this.map = plus.maps.create('map');
    this.map.setCenter({lat: this.latitude, lng: this.longitude});
    this.map.show();
  },
  methods: {
    addCircle() {
      const circle = this.map.addCircle({
        center: {lat: this.latitude, lng: this.longitude},
        radius: 1000,
        strokeColor: '#FF0000',
        strokeOpacity: 0.8,
        strokeWeight: 2,
        fillColor: '#FF000000',
        fillOpacity: 0.35
      });
      this.circles.push(circle);
    },
    clearCircles() {
      this.circles.forEach(circle => {
        circle.remove();
      });
      this.circles = [];
    }
  }
};
</script>

<style>
/* Add any necessary styles here */
</style>

在这个示例中,我们创建了一个地图组件,并添加了两个按钮用于添加和清除circles。addCircle方法会在地图上添加一个circle,并将其引用存储在circles数组中。clearCircles方法会遍历circles数组并调用每个circle的remove方法来清除它们。

请注意,这里的代码是基于uni-app的nvue环境,并且假设plus.maps对象已经正确初始化并指向了Google Maps。如果在实际环境中遇到问题,可能需要检查以下几点:

  1. 确保Google Maps SDK已经正确集成到项目中。
  2. 确保plus.maps对象已经正确初始化,并且指向的是Google Maps实例。
  3. 检查是否有任何权限或API限制导致circles无法被移除。

如果以上代码无法解决问题,可能需要查阅更详细的Google Maps SDK文档或联系技术支持获取帮助。

回到顶部