gpt4 book ai didi

javascript - HereMaps JS getZoom() 在缩放操作后返回 0

转载 作者:行者123 更新时间:2023-11-29 23:43:54 25 4
gpt4 key购买 nike

我们正在使用 C# 和 Xamarin 框架开发一个 Android 应用程序(针对 API 19 及更高版本)。一个中央组件是位于 WebViewClient 内部的 map - 该 map 是使用 Here Maps JS API v3(不是 Here Maps 移动 Android SDK)呈现的 Here Maps。

问题:ma​​p.getZoom() 在用户双指缩放操作后返回 0

作为测试,我们连接了以下事件:“mapviewchangestart”、“mapviewchange”、“mapviewchangeend”、“sync”,然后在名为 map.getZoom() 的处理程序中——除了我们引用的“sync”< strong>e.newValue.zoom。此外,应用程序可以直接调用 map.getZoom() 而无需任何相关的 map 事件。然而,在每种情况下,在捏合缩放操作之后,getZoom() 都会返回 0。

认为这可能是异步问题,我们在调用 map.getZoom() 之前等待了数秒 (apx 30) 让所有事件/处理程序完成 - 它返回 0。

但是,当点击 map 上的 map 控件(即 + -)以编程方式缩放或设置缩放级别时,getZoom() 会按预期运行并返回正确的缩放级别。一个可能的线索:当捏合缩放并达到最大缩放级别(即 20)时,map.getZoom() 正确反射(reflect) 20。

有没有人经历过类似的事情?任何想法或想法(无论多么微小)都将不胜感激 - 谢谢。

最佳答案

在与我们的 map 合作伙伴合作并查看他们提供的一些示例代码后,我们能够确定问题是由于我们的假设不正确造成的:

getZoom() 返回的不是整数而是 float

在我们的 C# 包装器中,我们错误地假设它返回一个整数,因此每当该值不能隐式转换为整数时(例如,当它不是 3.0、4.0、5.0 等时)而是有一个小数部分(例如 3.462 ) 它被 C# 转换为零 (0)。

有趣的是,无论何时使用 map 缩放控件 (+ -) UI 按钮,该值似乎总是增加/减少到下一个整数整数(例如 3.462 将变为 3.0 或 4.0),但是当捏- to-zoom 事件发生时,值一般包含小数部分。

我们还假设有 21 个缩放级别(0 到 20),但这似乎也是一个不正确的假设 - 如果有人知道一些对此进行详细说明的文档将会有所帮助。

无论如何,我想这本质上是一个需要更密切地进行 RTFM 和重新评估假设的情况。

关于javascript - HereMaps JS getZoom() 在缩放操作后返回 0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51623205/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com