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
这对我来说效果很好。祝你好运
我正在使用 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
这对我来说效果很好。祝你好运