2013-05-08 51 views
1

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

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

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

+0

进一步检查看起来像瓷砖只能在y轴上移动。 – whyvez 2013-05-08 20:52:13

+0

试图选择引导下拉菜单而不是选择,但得到相同的行为。看起来谎言瓷砖正在变得稍微放大。 – whyvez 2013-05-08 23:14:31

回答

1

WOOOOHOOO!找到它......或者是一个解决方案。仍然不太确定问题的根源是什么。要解决此问题,您需要将小册子的全局L_DISABLE_3D切换为true。

我可以在我的应用程序的简化版本中复制问题,该应用程序只有bootstrap,leaflet和cordova作为依赖关系。该应用有一个导航栏,第一行有一个下拉导航项目,第二行有一个小册子导图。这个问题只发生在一个cordova应用程序,即webview中时。

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

sample test app

重现您需要1问题)。点击导航栏下拉菜单(Account)使菜单显示2)。然后触摸地图。其结果将是一个错觉,即瓷砖的尺寸增大,从而扭曲了地图,即道路不再排队,标签被切断。我在触发器之前和之后记录了图像大小,并获得了相同的大小。这导致我相信这个问题与像素密度或其他一些我不明白的图形现象有关。

现在还不清楚问题是否涉及传单,cordova或Android本机WebView。

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

+0

还创建了一个传单[问题](https://github.com/Leaflet/Leaflet/issues/1666)。 – whyvez 2013-05-09 15:52:40

+0

感谢github @ mourner指出这是一个现有的传单问题,并且有更好的解决方案。参见[小册子#161](https://github.com/Leaflet/Leaflet/issues/161)。我上面建议的解决方案是:L_DISABLE_3d不是正确的解决方案,因为它会使滑动图无法使用。我会更新我的答案。 – whyvez 2013-05-09 16:12:27

相关问题