【问题标题】:PhoneGap/Android: Google Map not fully displayed in emulatorPhoneGap/Android:谷歌地图未在模拟器中完全显示
【发布时间】:2012-05-20 19:21:51
【问题描述】:

我正在尝试运行一个带有 Google 地图的 PhoneGap 应用程序(使用 Eclipse 和 PhoneGap for Andoroid 插件)。基本上它似乎工作。但是,在显示地图时会出现一些故障。我手头没有手机,只有模拟器。例如,地图如下图所示:

控件和这个“使用条款”都在那里,但地图上缺少一些部分。当我移动地图时,它也会滑动空白/灰色区域。但是在刷新/重新加载后,地图的一部分又消失了。而且它并不总是相同的区域,有时更小,有时更大。但地图永远不会填满整个区域。

这是模拟器的错误/故障吗?在搜索问题时,我只是偶然发现地图根本不显示的问题(例如,布局为 0px/0px 或 API 密钥丢失)。我也有一个原生的 Android 应用程序,并且带有谷歌地图的 Activity 显示得很好。

感谢任何提示!

【问题讨论】:

    标签: javascript android google-maps cordova android-emulator


    【解决方案1】:

    好的,在网上搜索了一些之后,我找到了问题所在。当您尝试在隐藏的 DIV 元素中加载地图时,这似乎是一个常见问题。诀窍是在此 DIV 变得可见后简单地刷新地图。我发现并且对我有用的一种方法是手动触发调整大小事件:google.maps.event.trigger(map, "resize");

    【讨论】:

    • 我也有同样的问题,但我无法理解你的答案,你能解释一下吗?
    • 没什么好解释的。在某些情况下,DIV 变得可见,例如,在调用$("#myDivId").show(); 之后。之后,您只需调用google.maps.event.trigger(map, "resize");,其中map 是您在开始时初始化的地图的句柄,例如var map = new google.maps.Map($("#map_canvas").get(0), { center: {lat: -34.397, lng: 150.644}, zoom: 8 });
    • 但是我正在使用 标签来显示地图,而另一件事是我的问题是当我第一次进入页面时 goole 地图加载完美,但转到另一个页面并再次返回然后地图是损坏,从未加载。
    • 嘿,请帮帮我兄弟。:(
    • 很难说没有看到代码该怎么做。您可能想提出一个新问题并提供核心 sn-ps。只是一些cmets:首先,<map>与显示谷歌地图无关;那是为了创建图像映射。不过,将谷歌地图放入<map> 可能并没有什么坏处。其次,“转到另一个页面”是什么意思?一个完全不同的网站?您自己网站的不同页面?如果是后者,您是加载完整的新页面还是通过隐藏/显示 DIV 来更改内容?我建议打开一个新问题并提供详细信息。
    【解决方案2】:

    你能发布你的代码吗?当我遇到这样的问题时,我将其应用于保存地图的容器:

    layout: {
       type: 'fit'
    }
    

    【讨论】:

    • 感谢您的帮助!我发现了问题;看我的回答。我错过了最初将地图加载到隐藏 DIV 中的要点。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-02-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-22
    相关资源
    最近更新 更多