2011-06-28 28 views
0

私はユーザーが入力する必要があるフォームを持っています。これはタッチスクリーンキーボードで時間がかかるので、郵便番号郵便番号

などのユーザー入力に基づいて提案を「自動完成」したい

代わりのユーザー、ユーザーの代わりに、住所を入力郵便番号、市と州の自動埋めアドバイスを得ることができます

自分の住所、市、州、郵便番号を入力します。

これらは、間違っていると編集できますが、何度も、特に状態のために十分に修正されます。

アプリの設置面積を最小限に抑えてAndroidでどのように行うのですか。私はGoogleがジオコードAPIのいくつかの種類を持っていることを見てきましたが、私はそれがアンドロイド

に関連している場合は、どこのユーザーに関する仮定をしない場合は、任意の洞察力は、最小のアプリフットプリントについて

答えて

1

に感謝わからないんだけどこれを取得するには、ある種のWebサービスを使用する必要があります。大雑把なグーグルは例としてthisを明らかにする。

何らかの理由で小さな都市(たとえば、都市周辺)のユーザーだけがあなたのアプリを使用していると予想される場合は、データベース/検索ファイルを焼き付けることは可能ですが、郡全体を対象とすることはできません。

+0

私はそれを好きですが、その遅すぎます。可能であればGoogleのサービスにアクセスする必要があります – CQM

+1

http://stackoverflow.com/questions/4749706/lookup-city-and-state-by-zip-google-geocode-api – maxpower47

1

当社のウェブアプリのために、私たちが使用zipcodeapi/COM /例:

<script type="text/javascript">//<![CDATA[ 
$(function() { 
    // IMPORTANT: Fill in your client key 
    var clientKey = "js-9qZHzu2Flc59Eq5rx10JdKERovBlJp3TQ3ApyC4TOa3tA8U7aVRnFwf41RpLgtE7"; 

    var cache = {}; 
    var container = $("#example1"); 
    var errorDiv = container.find("div.text-error"); 

    /** Handle successful response */ 
    function handleResp(data) 
    { 
     // Check for error 
     if (data.error_msg) 
      errorDiv.text(data.error_msg); 
     else if ("city" in data) 
     { 
      // Set city and state 
      container.find("input[name='city']").val(data.city); 
      container.find("input[name='state']").val(data.state); 
     } 
    } 

    // Set up event handlers 
    container.find("input[name='zipcode']").on("keyup change", function() { 
     // Get zip code 
     var zipcode = $(this).val().substring(0, 5); 
     if (zipcode.length == 5 && /^[0-9]+$/.test(zipcode)) 
     { 
      // Clear error 
      errorDiv.empty(); 

      // Check cache 
      if (zipcode in cache) 
      { 
       handleResp(cache[zipcode]); 
      } 
      else 
      { 
       // Build url 
       var url = "https://www.zipcodeapi.com/rest/"+clientKey+"/info.json/" + zipcode + "/radians"; 

       // Make AJAX request 
       $.ajax({ 
        "url": url, 
        "dataType": "json" 
       }).done(function(data) { 
        handleResp(data); 

        // Store in cache 
        cache[zipcode] = data; 
       }).fail(function(data) { 
        if (data.responseText && (json = $.parseJSON(data.responseText))) 
        { 
         // Store in cache 
         cache[zipcode] = json; 

         // Check for error 
         if (json.error_msg) 
          errorDiv.text(json.error_msg); 
        } 
        else 
         errorDiv.text('Request failed.'); 
       }); 
      } 
     } 
    }).trigger("change"); 
}); 

//]]> 郵便番号の距離