在p:gmap上绘制折线而不重新加载地图

时间:2017-08-10 09:44:38

标签: google-maps primefaces jsf-2 primefaces-gmap

我正在尝试在用户点击PrimeFaces GMap时绘制折线。

折线已经在GMap中绘制,但是当用户点击时,地图总会重新加载。

如果我使用JavaScript绘制折线,我可以阻止GMap重新加载。

有没有办法在不使用JavaScript的情况下完成此操作?

<p:remoteCommand name="rcSendPoint" actionListener="#{indexBacking.onPointSelect()}" update="gmap"/>
        <p:gmap id="gmap"
                widgetVar="gmap"
            center="-6.9243586, 107.6202013" 
            zoom="20" type="HYBRID" 
            model="#{indexBacking.model}" 
            style="width:100%;height:400px"
            onPointClick="drawPolyline(event);"/>                          
    </h:form>
    <script type ="text/javascript">
        var point = null;            
        function drawPolyline(event) {
            if (point === null) {                       
                rcSendPoint([{name: 'latitude', value: event.latLng.lat()}, {name: 'longitude', value: event.latLng.lng()}]);
            }
        }
    </script>

public void onPointSelect() {          
    Map<String, String> params = FacesContext.getCurrentInstance().getExternalContext().getRequestParameterMap();
    lat = Double.valueOf(params.get("latitude"));
    lng = Double.valueOf(params.get("longitude"));  
    polyline.getPaths().add(new LatLng(lat, lng));
    model.addOverlay(polyline);
}

0 个答案:

没有答案