谷歌地图意外地重置相机缩小

2024-02-27

我有基于谷歌地图的应用程序,允许用户查看标记。我遇到的问题是,当我放大以查看地图上的所有标记时,几秒钟后地图将重置为原始缩放级别,并且我无法查看所有标记。

我希望地图保持在用户缩放级别,但我无法想出逻辑。这是我的代码:

@Override
protected void onPostExecute(final ArrayList<Item> arrayList) {
    if(isCancelled()) return;
    if(googleMap!=null) {
        googleMap.clear();
        mMarker2Item.clear();
        LatLngBounds.Builder boundBuilder = new LatLngBounds.Builder();
        for (Item item : arrayList) {
            MarkerOptions opts = new MarkerOptions()
                    .position(item.location())
                    .title(item.name);
            if(item.iconBitmap!=null){
                opts = opts.icon(BitmapDescriptorFactory.fromBitmap(item.iconBitmap));
            }
            Marker newMarker = googleMap.addMarker(opts);
            newMarker.setSnippet(item.vicinity);
            mMarker2Item.put(newMarker, item);
            boundBuilder.include(item.location());
        }
        try {
            CameraUpdate cameraUpdate = CameraUpdateFactory.newLatLngBounds(boundBuilder.build(), 200);
            googleMap.moveCamera(cameraUpdate);
            googleMap.animateCamera(cameraUpdate, 1000, null);
        } catch (Exception ex) {

        }
    } else mHandler.postDelayed(new Runnable() {
        @Override
        public void run() {
            onPostExecute(arrayList);
        }
    }, 500);
}

只需在 Activity 中定义一个布尔标志作为类成员变量即可(前提是您的 AsyncTask 是 Activity 的子类):

public boolean firstTime = true;

然后,在移动相机之前检查布尔标志:

if (firstTime) {
  firstTime = false;
  CameraUpdate cameraUpdate = CameraUpdateFactory.newLatLngBounds(boundBuilder.build(), 200);
  googleMap.moveCamera(cameraUpdate);
  googleMap.animateCamera(cameraUpdate, 1000, null);
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

谷歌地图意外地重置相机缩小 的相关文章

随机推荐

  • 降级 Eclipse ant 以在使用旧版 JDK 库时进行编译 (Java 1.7 -> 1.6)

    我有相反的问题升级Eclipse java编译器 https stackoverflow com questions 4267760 upgrade eclipse java compiler 我正在使用 Eclipse 3 7 1can支
  • 表视图标题中的 UISearchController 搜索栏留下状态栏大小的间隙

    我使用带有 tableView 的 UIViewController 我已经设置了一个搜索控制器并将搜索栏嵌入到表视图标题中 当我搜索时 它会在 tableview 和上面的 uiview 之间留下一个状态栏大小的间隙 我意识到还有很多关于
  • UWP 应用程序和 .NET Core RC2:无法引用 netstandard1.4 包

    我有一个场景 我使用共享代码库运行 UWP 客户端应用程序 UWP IOT 应用程序和 NET Core 应用程序 在 NET Core RC1 中 我构建了一个类库 包 并使用 dotnet5 4 作为该库的基础框架 使用 生成构建输出
  • ScrollView 的可滚动内容高度不明确[重复]

    这个问题在这里已经有答案了 I am making a very basic UIScrollView test Here is my setup It shows me the following AutoLayout error Scr
  • 过滤器聚合上的 Bucket_script 聚合未显示结果

    我的索引中有 事件 如网站点击 文档 现在我想计算 name x 的事件和 name y 的事件之间的比率 我首先使用 过滤器 聚合将我的文档分成两个存储桶 然后使用bucket script聚合来计算比率 但其结果未显示在输出中 这是我的
  • Bitcode_strip 在 Xcode 8 中失败

    我知道很少有与此标题相同的问题 我尝试了所有建议的解决方案 但在我的情况下不起作用 有人有其他解决方案吗 我已经尝试过以下所有选项 1 删除所有派生数据并多次清理 2 更改Xcode版本 3 设置 STRIP BITCODE FROM CO
  • 使用 WordPress 响应 Router v4 和 htaccess

    我制作了一个包含两个组件的简单 React 应用程序 它可以通过从一个组件到另一个组件的链接进行路由 如果页面是独立的 则效果很好 通过应用程序内的链接 可以切换组件 更改 url 也可以很好地更改组件 URL 中的参数也有效 但现在我想将
  • 使用 PackageManager.GET_SIGNATURES 时 Android Studio 发出警告

    我需要获取包签名 目前我使用以下代码获取它 Signature sigs c getPackageManager getPackageInfo c getPackageName PackageManager GET SIGNATURES s
  • PHP 基于元素依赖关系对数组进行排序

    相当难以解释 但实际上我有一个具有 ID 的项目数组 其中可以包含其他数组项目的 ID 列表 例如 items id one deps three id two id three deps four two id four 正如您在这里看到
  • 如何在 QGraphicsScene 上绘制一个点(通过鼠标单击)?

    我有以下代码来设置QGraphicsScene 我希望单击场景并在我单击的位置绘制一个点 我怎么能这样做呢 这是我当前的代码 MainWindow MainWindow QWidget parent QMainWindow parent u
  • android ProgressDialog字体大小改变

    是否可以更改字体大小并使显示的文本加粗ProgressDialog 我创建了一个ProgressDialog像这样 private ProgressDialog dialog this dialog ProgressDialog show
  • 关于可哈希对象的解释需要解释

    马克 兰塞姆 https stackoverflow com users 5987 mark ransom回答于SO关于哈希的问题 https stackoverflow com questions 2671376 hashable imm
  • 使用 Windows 凭据和 .net 4.5 WIF 的 RequestSecurityToken

    任何人都可以指出使用 NT 凭据主动发出 RequestSecurityToken 的示例代码吗 Thread CurrentPrincipal as ClaimsPrincipal 该场景是一个启用了 Windows 身份验证的 ASP
  • 离线时不会调用 Firebase onDataChange

    关于 Firebase ValueEventListener 我遇到了一个非常奇怪的情况 当手机连接到互联网时 它可以正常工作 但是当它离线时 它不会调用onDataChange 这段代码即使在离线状态下也能很好地工作 mDatabase
  • 我可以在 Typescript 方法装饰器中访问目标类实例吗?

    我正在 Typescript 中创建一个 WebSocket 服务器 其中不同的应用程序组件应该能够注册自己的请求处理程序 有一个单例WebsocketHandler提供了这种行为 如果没有装饰器 类可以像这样注册其请求处理程序 class
  • AdMob 广告未显示在模拟器中

    我正在我的应用程序中集成 AdMob 广告 我正在模拟器中运行 y 应用程序 并且在 admob 中我已将设备 ID 设置为模拟器 但即使在广告没有显示在模拟器中之后 下面是我的代码 XML
  • 在 Windows 上为 Haskell 安装 SDL (GHC)

    背景 我一直在使用光泽库进行一些简单的图表工作 但当需要更具交互性的东西时 我发现我需要一个更强大的库 经过一些研究后 我决定我喜欢 SDL 库的功能 并想尝试为其安装 Haskell 绑定 到目前为止我还没有成功 Part 1 如何安装和
  • hg revert 和 hg backout 之间有什么区别?

    Both hg revert and hg backout恢复先前修订版所做的更改 两者有什么区别 鉴于变更集的历史 A B C D E bad hg revert r B 保持当前版本 但更新工作目录 截至修订版B 它具有撤销更改的补丁的
  • iOS:全页插页式广告关闭后显示黑屏

    我用此代码显示全屏广告 它可以显示全页广告 问题是 当我关闭广告时 我只有一个空白屏幕 它不再显示我的应用程序 My code void showFullScreenAd if requestingAd NO interstitial AD
  • 谷歌地图意外地重置相机缩小

    我有基于谷歌地图的应用程序 允许用户查看标记 我遇到的问题是 当我放大以查看地图上的所有标记时 几秒钟后地图将重置为原始缩放级别 并且我无法查看所有标记 我希望地图保持在用户缩放级别 但我无法想出逻辑 这是我的代码 Override pro