3

如何使用 Geocoder API 或其他方式将城市或州名转换为 javascript 或 angularjs 中的邮政编码?从用户输入我想转换它。

4

4 回答 4

1

谢谢你们。我解决了.....:) 这是代码:

功能getCity(选项){

var geocoder = new google.maps.Geocoder(),
    request;

if( options.latitude ) {

    request= { 'latLng': new google.maps.LatLng( options.latitude, options.longitude ) };

} else {

    request= { 'address': options.address };

};

geocoder.geocode( request, function( results, status ) {

    if ( status == google.maps.GeocoderStatus.OK ) {

        console.log( results );

       geocoder.geocode( request, function( results, status ) {

        if ( status == google.maps.GeocoderStatus.OK ) {

            console.log( results );


            var latitude = results[0].geometry.location.jb;
            var longitude = results[0].geometry.location.kb;
                var  latlng = new google.maps.LatLng(latitude, longitude)

                alert(latlng);

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

                    //no result, check addresses
                    for( var resultIndex = 0; resultIndex < results.length; resultIndex++ ) {

                        var addresses = results[resultIndex].address_components;

                        for( var addressIndex = 0; addressIndex < addresses.length; addressIndex++ ) {

                            var types = addresses[addressIndex].types;

                            for( var typeIndex = 0; typeIndex < types.length; typeIndex++ ) {

                                if( types[typeIndex] == 'postal_code' ) {
                                    alert(addresses[addressIndex].long_name) ;
                                    return;

                                };

                            };

                        };

                    };


                });


    } else {

        console.log( 'error: ' + status );
       // complete();

    };

});

};

于 2013-05-27T18:50:37.727 回答
0

谷歌为此提供了一个巧妙的 API。查看有关使用 GoogleAPI 从城市名称获取邮政编码的 Stack Overflow 线程:从城市名称 获取邮政编码的最简单方法

于 2013-05-24T20:17:09.693 回答
0

这是工厂示例:

feederliteModule.factory('maps', ['$q', function ($q) {
var geocoder = new google.maps.Geocoder();
return {
    geocode: function (address) {
        var deferred = $q.defer();

        geocoder.geocode({
            'address': address
        }, function (results, status) {
            deferred.resolve(results);
        // Should also reject if AJAX errors.
        });

        return deferred.promise;
    }
  };
}]);

在哪里address输入。

输出应该是 json 视图,您可以在其中找到邮政编码:

 ...
 {
    "long_name": "168751",
    "short_name": "168751",
    "types": [
      "postal_code"
    ]
  }
   ...

现在您可以从控制器中调用它,例如:

 maps.geocode(address)
于 2013-05-24T21:41:17.563 回答
0

当然,邮政编码不一定与地点有关,而是与送货路线有关。USPS 控制邮政编码并根据需要重新排列它们以提高邮件递送效率。许多人已经开始期望邮政编码准确地代表某个城市或城市中的某个区域,但它不是一成不变的。在美国的 42,000 个 5 位邮政编码中,大约 4% 的邮政编码每个月都会发生变化,因此无论您在哪里获取城市/州/邮政编码数据,请确保 USPS 每月更新它。

除了 googlemaps 之外,还有许多商业服务可以提供您正在寻找的内容。快速谷歌搜索“zip code api”就可以了。

于 2013-05-25T01:27:41.050 回答