1

我正在使用leaflet.js 开发一个带有嵌入式地图视图的Android/Cordova 应用程序。我使用的设备是 Nexus 7。地图是使用 TileLayer 加载的,一切都很好,直到...我单击表单中的表单选择控件,然后出现原生 Android 选择器。从那里开始,地图瓦片都在 x 和 y 方向上移动了几个像素。当我在同一台设备上的 Chrome 浏览器中运行网络应用程序时,没有问题。似乎与 Cordova DroidGap 或 Android WebView 隔离。看起来在 DOM 或 WebView 容器中发生了一些奇怪的事情,这会抛出平铺图像。尝试在单击选择之前和之后检查地图容器大小,但没有区别。尝试记录 DOM 并且在两种情况下都相同。

任何人有任何其他建议在哪里看?

有什么办法可以禁用这个本机选择器?

4

1 回答 1

1

呜呜呜!找到它......或者一个解决方案。仍然不太清楚问题的根源是什么。要解决此问题,您需要将传单的全局L_DISABLE_3D开关设置为 true。

我可以在我的应用程序的精简版本中复制这个问题,该版本只有引导程序、传单和科尔多瓦作为依赖项。该应用程序有一个导航栏,第一行有一个下拉导航项,第二行有一个传单地图。该问题仅在其托管在科尔多瓦应用程序(即 webview)中时发生。

注意:我无法在移动或桌面浏览器上复制该问题。

示例测试应用

要重现该问题,您需要 1)。单击导航栏下拉菜单(帐户)以显示菜单 2)。然后触摸地图。结果将是一种错觉,即瓷砖尺寸变大并因此扭曲地图,即道路不再排列并且标签被切断。我在触发器之前和之后记录了图像大小并获得了相同的大小。这让我相信这个问题与像素密度或我不理解的其他一些图形现象有关。

目前尚不清楚该问题是否与传单、cordova 或 Android 原生 WebView 有关。

更新:请参阅下面的评论以获得更好的解决方案。

于 2013-05-09T15:28:46.917 回答