我正在尝试在用户点击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);
}