2010-05-08 2 views
5

Quel est le meilleur api/ressource pour obtenir un zip +4 d'une adresse? Je ne veux pas quelque chose qui doit être téléchargé et mis à jour de temps en temps; Je veux un qui est mis à jour automagically.api pour zip +4 à partir d'une adresse

Le but est de rechercher des fonctionnaires fédéraux et d'état sans avoir de positions "dupliquées".

Répondre

3

Yahoo a un zip + 4 dans leur API thier, limite de 5000 demandes par jour.

Yahoo GeoCoding

+1

Cette API est maintenant obsolète. Il a été remplacé par Placefinder. Maintenant, cela est remplacé par le service BOSS Geo.Ils disent "* Nous continuons à offrir une table YQL limitée pour Placefinder et Placemaker pour un usage non commercial.Les api gratuites de REST ne seront plus activement supportées. *" – nealmcb

2

L'USPS a une API pour trouver/vérification des codes postaux (entre autres).

http://www.usps.com/webtools/address.htm

+0

vous êtes seulement autorisé à l'utiliser si vous expédiez par USPS cependant. J'ai été rejeté pour une clé d'API au moins deux fois (avec des réponses honnêtes). –

+0

Ce lien est maintenant cassé. –

+1

On dirait qu'il est déplacé à https://www.usps.com/business/webtools.htm –

2

Je l'ai utilisé Endicia à des travaux antérieurs. C'est une API HTTP basée sur le réseau. (Je ne me souviens pas si c'était SOAP ou REST.)

+0

Je pense qu'il est appelé composer un zip. – Jonesome

2

L'USPS met à jour la base de données ZIP + 4 chaque mois. Si vous examinez une adresse spécifique, il semble que son ZIP + 4 ne change jamais. Mais un nombre suffisant d'adresses aura toujours des changements tous les mois. Donc, pour maintenir les codes ZIP + 4 à jour, vous devez retraiter vos adresses périodiquement. Si vous effectuez de toute façon un retraitement régulier, gardez une copie des bases de données USPS vous-même et remplacez les bases de données par une étape de retraitement. Le gros avantage est que vous avez un accès direct aux bases de données USPS DPV, DirectDPV, LACSLink, SuiteLink et RDI, qui ne sont pas disponibles via leur API web.

http://semaphorecorp.com est une source bon marché de bases de données USPS. Je suppose que vous n'essayez pas d'utiliser ZIP + 4 comme une clé d'adresse. Un ZIP + 4 couvre généralement toutes les adresses d'un côté de la rue pour un bloc, donc en soi, il ne convient pas à des fins de saisie.

+0

bonne information (+1), mais ce n'est pas pour "l'utilisation professionnelle", donc je n'ai pas besoin d'un niveau élevé de précision et/ou de monnaie. –

6

Avez-vous essayé Google Maps JavaScript API V3

mise à jour:

à responce à votre commentaire

c'est facile chef 1, 2, 3;)

un coup d'oeil à ce :

vous devez chercher google map service de géocodage!(Viewport polariser)

exemple de code serait:

utilisant jQuery

$(function() { 
    $.getJSON("http://maps.google.com/maps/api/geocode/json?address=Winnetka&sensor=false", 
    function(data) { 
     var zip_code = data.results[0].long_name; 
     alert(zip_code); 
    }); 
}); 
+0

J'adorerais utiliser un service google, mais je n'ai pas passé le temps de trouver comment lui envoyer une adresse et récupérer une adresse "aseptisée". –

+0

voir les mises à jour! –

+3

Je suis après zip + 4. Il ne semble pas que Google expose ces données si elles l'ont, mais merci pour l'exemple. –

0

En référence de Yahoo BOSS GEO Api:

http://yboss.yahooapis.com/geo/placefinder?location=170+South+Market+St.,+San+Jose,+CA

Faire une demande GET avec l'autorisation suivante HEADER

Exemple d'utilisation OAuth en-tête HTTP:

Autorisation: OAuth realm = "http://yboss.yahooapis.com/" , oauth_consumer_key = "dj0yJmk9QnFUYVRUSWtRZEhsJmQ9WVdrOVFrYzFja2x4TkdNbWNHbzlNVEExTWpFMk1ESTJNZy0tJnM9Y29uc3VtZXJzZWNyZXQmeD1lNA -", oauth_nonce = "ZDQDDVLFCWKCZ0BD", oauth_signature_method = "HMAC-SHA1", oauth_timestamp = » 1367827192" , oauth_version = "1.0", oauth_signature = "phP2dNiCmvwpK4M6G% 2F85KnnvTXo% 3D"

où:

L'authentification pour les requêtes BOSS Geo nécessite des informations OAuth dans l'en-tête HTTP OU via les paramètres de la requête GET. Il y a six éléments qui sont nécessaires à l'autorisation:

oauth_version=1.0 – The standard of OAuth supported by BOSS Geo. 

oauth_timestamp= – The timestamp is expressed in the number of seconds since January 1, 1970 00:00:00 GMT. The timestamp value MUST be a positive integer and MUST be equal to or greater than the timestamp used in previous requests. The timestamp can be reused for up to 5 minutes. Important: After 5 minutes a fresh timestamp must be supplied. 

oauth_nonce – is a random string, uniquely generated for all requests for a specific timestamp. This helps verify that a request has never been made before and helps prevent replay attacks when requests are made over a non-secure channel (such as HTTP). 

oauth_consumer_key= – obtained from YDN during the BOSS project registration process. This is unique to the developer. Please follow the directions on the displayed key page and copy the entire key from YDN. If you do not copy the entire key, this results in a "Consumer Key rejected" error. 

oauth_signature_method=HMAC-SHA1 – (specific algorithm used for BOSS OAuth calls). 

oauth_signature – can be generated by an OAuth library. A list of supported OAuth libraries is available here: http://oauth.net/code. Over a dozen languages are supported. 

Vous obtiendrez zip + 4 code en réponse sous clé « postalcode ».

1
Apple provide brilliant facility to get zip+4code from lattitude and longitude with reverse geocoder - 

    - (void)getPlaceMarkInfo 
    { 
     CLLocationCoordinate2D coordinate; 

     coordinate.latitude    = your lattitude; 

     coordinate.longitude   = your longitude; 

     MKReverseGeocoder *RevGeoCoder = [[MKReverseGeocoder alloc] initWithCoordinate:coordinate]; 

     RevGeoCoder.delegate   = self; 

     [RevGeoCoder start]; 
    } 

#pragma mark MKReverseGeocoderDelegate: 


- (void)reverseGeocoder:(MKReverseGeocoder *)geocoder didFindPlacemark:(MKPlacemark *)placemark 
{ 
    NSLog(@"YOUR STATE IS - %@",[placemark.addressDictionary valueForKey:@"State"]); 

    NSDictionary *dictAddress = placemark.addressDictionary; 

    NSString *strZipPlus4Code = [NSString 
           stringWithFormat:@"%@-%@",[dictAddress valueForKey:@"ZIP"], 
                    [dictAddress valueForKey:@"PostCodeExtension"]]; 

    strStateName = [placemark.addressDictionary valueForKey:@"State"]; 
} 


- (void)reverseGeocoder:(MKReverseGeocoder *)geocoder didFailWithError:(NSError *)error 
{ 
    NSLog(@"REVERSE GEOCODER FAILED"); 

} 
1

réponses précédentes ont inclus quelques informations vraiment bon, le plus important:

  • API USPS ne peut être utilisée que si vous expédiez par USPS (de leur terms of service: « L'utilisateur accepte d'utiliser l'USPS Site Web, API et données USPS pour faciliter les transactions d'expédition USPS seulement. ")
  • Les codes postaux sont ajustés/mis à jour assez fréquemment, il serait donc important d'avoir les données les plus récentes. (Plus d'info sur la fréquence de revalider vos adresses here)

Vous avez également dit que vous voulez quelque chose qui n'a pas besoin d'être installé et tenue à jour.

Avec ces qualifications en tête, je suggérerais LiveAddress API. Il s'agit d'une API basée sur le cloud et mise à jour automatiquement qui renvoie, parmi plus de 40 autres points de données, des données ZIP + 4 sur vos adresses. Il peut gérer des milliers d'adresses par seconde, il est donc très rapide et facile à utiliser. Si vous avez une liste d'adresses que vous voulez utiliser (plutôt qu'une seule à la fois), vous pouvez vouloir LiveAddress for Lists, ce qui vous permet de télécharger et de traiter toute une liste à la fois.

Divulgation: Je travaille chez SmartyStreets, la société qui fournit LiveAddress.

Questions connexes