1

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

我使用以下有效...

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 的道路,而不是英国的 barrow in furness,有人知道如何解决这个问题吗?

4

1 回答 1

1

您正在传递模棱两可的信息。如果您通过“London”,试图获得“London, Canada”而不是更流行的“London, United Kingdom”,也会发生同样的事情。

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

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

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

您可以向函数添加一个可选country参数,然后将“United Kingdom”传递给它以应对不明确的情况:

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,以防万一您以后将其国际化。

于 2012-12-27T19:46:51.277 回答