Gmap Primefaces Geocode 自定义错误信息

Gmap Primefaces Geocode customized error message

我正在使用 p:gmap 关注地理编码功能的 Primefaces 展示,如果我输入真实地址,没关系,但如果我输入无效地址,则没有任何反应,我只收到 [=] 中的消息25=] 控制台 "Geocode not found",但我必须捕获该事件,以便向用户显示自定义消息。

更深入地寻找,我在 Primefaces 库中找到了 gmap.js,并且正在启动 Primefaces.error("Geocode not found"),但我仍然有问题如何捕捉它?

我正在使用 Primefaces 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

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