Gmap Primefaces 地理编码自定义错误消息



我正在使用 p:gmap 关注地理编码功能的 Primefaces 展示,如果我输入真实地址,没关系,但如果我输入无效地址什么也没发生,我只在 chrome 控制台中收到消息"找不到地理编码",但我必须捕获事件,以便我可以向用户显示自定义消息。

更深入地看,我在Primefaces库中找到了gmap.js并且启动了一个Primefaces.error("找不到地理编码"(,但我仍然有问题如何捕获它?

我使用 Primeface 5.2

<p:gmap 
widgetVar="w_gmap_edit" 
id="gmapId_edit" 
center="#{tiendasController.centerGeoMap}" 
zoom="15" 
type="ROADMAP" 
style="width:400px;height:450px"
model="#{tiendasController.mapModel}" 
onPointClick="handlePointClick_edit(event)"
>
<p:ajax 
event="geocode" 
listener="#{tiendasController.onGeoCodeAction}" 
onstart="onCompleteGeoCodeEdit(xhr, status, args)"
update="@this center-form:tiendas-editar-latitud-value center-form:tiendas-editar-longitud-value"
/>
</p:gmap>

和Javascript函数:

function geocode_edit() {
PF('w_gmap_edit').geocode(document.getElementById('center-form:tiendas-editar-direccion-value').value);
}

你试过这个吗:

视图元素

<a:row> <a:label value="" span="2"/> <p:commandButton value="#{bundleCommun.btn_recherche}" icon="ui-icon-search" onclick="geocode();" type="button" /> </a:row> <p:gmap id="geoGmap" widgetVar="geoMap" center="#{addHubController.centerGeoMap}" zoom="12" type="ROADMAP" model="#{addHubController.geoModel}" onPointClick="handlePointClick(event);" style="width:100%;height:400px"> <p:ajax event="geocode" listener="#{addHubController.onGeocode}" update="@this" /> </p:gmap>

脚本

<script>
function geocode() {
var map=PF('geoMap').getMap();//PERFECT
var address=document.getElementById('form:address').value;//PERFECT
var geocoder = new google.maps.Geocoder();//PERFECT
geocoder.geocode({'address': address}, function(results, status) {
if (status === 'OK') {
map.setCenter(results[0].geometry.location);
var marker = new google.maps.Marker({
map: map,
position: results[0].geometry.location
});
} else {
alert('CUSTOMIZED ERROR MESSAGE');
}
});
</script>

PRIMEFACES GMAP/GOOGLE MAP API, GEOCODE TUTORIAL

这对我来说效果很好。祝你好运

最新更新