【发布时间】:2015-04-10 15:51:46
【问题描述】:
我正在创建一个脚本,以使用 Here Maps Geocoder Javascript API 查找从英国邮政编码开始的位置。该代码似乎工作正常,但在邮政编码 BT45 7PX 上我收到了错误
TypeError:result.Response.View[0] 未定义
我使用的代码如下:
var platform = 0;
var postcode = 0; /*random value*/
$(document).ready(function(){
platform = new H.service.Platform({
app_id: '(myapp_id)',
app_code: '(myapp_code)',
useCIT: true
});
document.getElementById('searchInput').value.toUpperCase();
postcode = contentRead.replace(/\s+/g, '');
geocode(postcode);
})
function geocode(postcode){
var geocoder = platform.getGeocodingService(),
geocodingParameters = {
searchText: postcode
};
geocoder.geocode(
geocodingParameters,
onSuccess,
onError
);
}
function onSuccess(result){
var location = result.Response.View[0].Result[0];
var city = location.Location.Address.City;
var lat = location.Location.DisplayPosition.Latitude;
var lng = location.Location.DisplayPosition.Longitude;
console.log('location: ');
console.log(location);
console.log('latitude: '+lat);
console.log('longitude: '+lng);
$('#rightResult').append('<div>The postcode searched points to... <strong>'+city+'</strong></div>');
}
function onError(error){
alert('Ooops, something went wrong, please try again!');
}
任何关于为什么代码不能与 BT45 7PX 一起正常工作的线索?
尝试使用基本的 JSON 调用 (http://geocoder.api.here.com/6.2/geocode.json?app_id=(myapp_id)&app_code=(myuapp_code)&searchtext=BT45%207PX) 我发现如果我在两者之间留出空格,调用就可以工作,但正如我所做的那样,删除它就不再适用了。其他邮政编码不会发生这种情况。
【问题讨论】:
-
根据Royal Mail website,在输出代码和输入代码之间应该始终有一个空格。第二部分 - 即 in 代码应始终采用
space-number-alpha-alpha的形式。在 this site 上找到的 JavaScript 验证并添加了一个空格。 in 代码的基本正则表达式是([0-9]{1}[ABDEFGHJLNPQRSTUWXYZ]{2})$ -
谢谢,正如我对 Jithin 所说的那样,我解决了始终传递带有空格的邮政编码的问题。但是,因为您链接了该正则表达式,所以我使用的是另一个:stackoverflow.com/a/164994/3717575
标签: javascript geocode here-api