更改窗口大小后,如何强制gmap重新绘制素面的中心布局内部?

安德烈

我正在使用primefaces布局显示网页。地图位于中心布局

 here<p:layoutUnit position="center" resizable="false" closable="false" collapsible="false" collapsed="false" styleClass="ui-layout-center" >

<script src="http://maps.google.com/maps/api/js?sensor=true|false"
    type="text/javascript"/>


<h:form>
    <p:growl id="messages" showDetail="true" life="4000" />
    <p:gmap id ="map" center="#{mapBean.latCenter}, #{mapBean.lonCenter}" zoom="#{mapBean.zoomLevel}" type="ROADMAP"
        style="position:absolute;width:100%;height:100%" model="#{mapBean.model}"  widgetVar="gmap">
        <p:ajax event="stateChange" listener="#{mapBean.onStateChange}"
            update="messages, map" fixBounds="false"/>
    </p:gmap>

还发现窗口大小已更改,我使用java脚本

        function initialize() {

        var gmap = PF('gmap').getMap();
        var currentCenter = gmap.getCenter();
        gmap.setCenter(currentCenter);

    }
    google.maps.event.addDomListener(window, 'resize', initialize);

但是,当我更改窗口的大小时,地图会部分显示。如果我将浏览器的窗口放大,则地图会显示为前一个小窗口的大小。仅在移动地图时有帮助。移动地图后,将正确重绘地图。我尝试使用

google.maps.event.trigger(gmap, "resize");

但这没有帮助。结果如下

改变窗口大小的结果

如何使用javaScript和Primefaces解决此问题?

安德烈

我已经解决了我的问题。

1)我检查了带有Inspect Element选项的页面2)注意到表单在div中进行了转换3)在google API上我找到了getDiv()4)div的更新样式5)下一个代码正在工作

window.onresize = function(event) {

        var map = PF('gmapV').getMap();
        var MyDiv = map.getDiv();
        var height = $(window).height() - 50 - 100;
        var width = $(window).width() - 300 - 200;
        MyDiv.style.width = width.toString().concat("px");
        MyDiv.style.height = height.toString().concat("px");
        google.maps.event.trigger(map, 'resize');

    }

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

更改布局内容后,将QMainWindow调整为最小大小

来自分类Dev

如何在状态更改后强制窗口小部件重新创建自己?

来自分类Dev

如何调整UIImageView的大小并强制父UITableViewCell的重新布局

来自分类Dev

力布局内的力布局:如何拖动内部节点

来自分类Dev

调整窗口大小以强制页面布局

来自分类Dev

如何在相对布局内部居中放置表格

来自分类Dev

如何水平布局内调整小部件的大小

来自分类Dev

在将MapFragment添加到相同布局的怪异行为后,在布局内部扩大视图

来自分类Dev

如何从Android中心布局绘制视图

来自分类Dev

Xamarin.Forms-强制重新绘制ListView布局

来自分类Dev

Xamarin.Forms-强制重新绘制ListView布局

来自分类Dev

更改终端字体大小后,以正确的格式重新绘制手册页

来自分类Dev

如何在窗口调整大小时重新绘制SVG地图?

来自分类Dev

如何强制刷新/重新绘制JScrollPane?

来自分类Dev

如何更改li元素的来源,使其从中心开始重新调整大小?

来自分类Dev

强制“ Rallychart”组件在容器调整大小时重新绘制

来自分类Dev

更改屏幕/窗口高度时如何更改弹出模式内部元素div的大小?

来自分类Dev

重新连接屏幕(运行irssi)会强制调整窗口大小

来自分类Dev

在重新调整窗口大小之前,不会触发砌体布局

来自分类Dev

如何在方向更改时调整大小/重新安排布局(Apache Cordova)

来自分类Dev

在Ajax中成功后如何在不重新加载页面的情况下更改URL

来自分类Dev

调整窗口大小时重新绘制/擦除画布

来自分类Dev

调整窗口大小时重新绘制/擦除画布

来自分类Dev

重新加载后字体大小更改

来自分类Dev

打开新窗口后强制按钮重新加载页面

来自分类Dev

将布局在顶部对齐,在其他布局内部

来自分类Dev

具有横向布局的自动布局内容大小的UIScrollview

来自分类Dev

更改道具后,如何在Svelte中强制重新渲染?

来自分类Dev

键盘布局在重新启动后始终恢复为默认值-如何更改?

Related 相关文章

  1. 1

    更改布局内容后,将QMainWindow调整为最小大小

  2. 2

    如何在状态更改后强制窗口小部件重新创建自己?

  3. 3

    如何调整UIImageView的大小并强制父UITableViewCell的重新布局

  4. 4

    力布局内的力布局:如何拖动内部节点

  5. 5

    调整窗口大小以强制页面布局

  6. 6

    如何在相对布局内部居中放置表格

  7. 7

    如何水平布局内调整小部件的大小

  8. 8

    在将MapFragment添加到相同布局的怪异行为后,在布局内部扩大视图

  9. 9

    如何从Android中心布局绘制视图

  10. 10

    Xamarin.Forms-强制重新绘制ListView布局

  11. 11

    Xamarin.Forms-强制重新绘制ListView布局

  12. 12

    更改终端字体大小后,以正确的格式重新绘制手册页

  13. 13

    如何在窗口调整大小时重新绘制SVG地图?

  14. 14

    如何强制刷新/重新绘制JScrollPane?

  15. 15

    如何更改li元素的来源,使其从中心开始重新调整大小?

  16. 16

    强制“ Rallychart”组件在容器调整大小时重新绘制

  17. 17

    更改屏幕/窗口高度时如何更改弹出模式内部元素div的大小?

  18. 18

    重新连接屏幕(运行irssi)会强制调整窗口大小

  19. 19

    在重新调整窗口大小之前,不会触发砌体布局

  20. 20

    如何在方向更改时调整大小/重新安排布局(Apache Cordova)

  21. 21

    在Ajax中成功后如何在不重新加载页面的情况下更改URL

  22. 22

    调整窗口大小时重新绘制/擦除画布

  23. 23

    调整窗口大小时重新绘制/擦除画布

  24. 24

    重新加载后字体大小更改

  25. 25

    打开新窗口后强制按钮重新加载页面

  26. 26

    将布局在顶部对齐,在其他布局内部

  27. 27

    具有横向布局的自动布局内容大小的UIScrollview

  28. 28

    更改道具后,如何在Svelte中强制重新渲染?

  29. 29

    键盘布局在重新启动后始终恢复为默认值-如何更改?

热门标签

归档