Primefaces gmap组件,fitBounds和更新

时间:2016-08-29 15:04:05

标签: google-maps jsf primefaces

我正在使用Primefaces 6.0。我正在使用版本6.2.6开发Liferay portlet。

我需要我的地图来显示所有标记,所以我使用了DECLARE @TESTDT datetime2 SET @TESTDT = '1996-09-10 00:00:00' DECLARE @TESTHR nvarchar(5) SET @TESTHR = '13:00' SELECT @TESTDT + ISNULL(@TESTHR,'00:00') 。问题是,如果由于任何原因(例如用新的覆盖更改模型)我更新地图可能会发生两件事:

1)如果我没有指定fit bounds = "truecenter属性,则根本不会渲染地图。在浏览器控制台上显示错误zoom

2)如果我指定了'too much recursion'center属性,则在下次更新时,地图将不会执行zoom,并且地图中心将是指定的地图。

值得注意的是,在第一次加载页面/ portlet时,无论我为属性设置什么值,地图都将“适合”。这意味着按F5刷新页面会正确显示地图,但在上述行为中执行ajax更新结果。

一种解决方法是将center和zoom属性绑定到某些托管bean属性,并使用fitBounds事件来存储初始状态,但不幸的是,这不符合我的要求。

真正的问题是:每次更新后如何让我的gmap组件“适合”。是开箱即用,还是有任何解决方法?

示例代码:

stateChange

托管bean

<h:form>
    <p:commandButton id="update-button" value="#{i18n['update']}" update=":map" />
</h:form>

<p:gmap id="map" center="( 12, 12)" zoom="8" type="ROADMAP" 
model="#{modelBean.mapModel}" fitBounds="true" />

0 个答案:

没有答案