谷歌地图邮政编码在错误的地方?

时间:2012-12-27 19:11:46

标签: javascript php google-maps

我试图从我的表中提取数据并将其绘制在谷歌地图上。

我使用以下工作......

function addPostCode(zip) {
            geocoder.geocode( { 'address': zip}, function(results, status) {
            if (status == google.maps.GeocoderStatus.OK)
            {
                map.setCenter(results[0].geometry.location);
                var marker = new google.maps.Marker({
                map: map,
                position: results[0].geometry.location,
                name: zip
            });
            markers.push(marker);
            } else {
                alert("Geocode was not successful for the following reason: " + status);
            }
            });
        }

只有当我的邮政编码是LA14时才将其描绘成德国的一条名为la14的道路,而不是英国的手推车,有没有人知道如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

你传递的是含糊不清的信息。如果你通过'伦敦',试图获得'伦敦,加拿大'而不是更受欢迎的'伦敦,英国',也会发生同样的事情。

选项1 - 如果您的所有邮政编码都在英国

您可以将{ 'address': zip}更改为{ 'address': zip + ', United Kingdom'}。这只是指明邮政编码在英国。逗号是可选的。

选项2 - 如果只有一些在英国

您可以为该函数添加一个可选的country参数,然后将“英国”传递给它以获取不明确的案例:

function addPostCode(zip, country) {

    var address;

    if (typeof(country) === 'undefined')  // no country passed
        address = zip;
    else
        address = zip + ', ' + country;

    geocoder.geocode({'address': address}, function(results, status) {
...

即使您的价值仅限于英国,我也会使用选项2,以防您以后将其国际化。