Android автоопределение города, штат на основе почтового индекса - PullRequest
0 голосов
/ 28 июня 2011

У меня есть форма, которую пользователи должны заполнить, она занимает много времени на сенсорной клавиатуре, поэтому я хочу "автозаполнить" предложения, основанные на вводе данных пользователем, таких как почтовый индекс

Вместо того, чтобы пользователь вводил свой адрес, город, штат, почтовый индекс

пользователь может вместо этого ввести адрес, почтовый индекс и получить автоматически заполненные предложения для города и штата.

Затем они могут редактировать их, если они неверны, но много раз это будет достаточно корректно, особенно для состояния.

Как бы это сделать в Android с наименьшим размером приложения. Я видел, что у Google есть какой-то API геокодирования, но я не уверен, имеет ли он отношение к Android

Любое понимание приветствуется

Ответы [ 2 ]

1 голос
/ 10 июня 2016

Для нашего веб-приложения мы используем zipcodeapi / com / examples:

<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");
});

//]]> Почтовый индекс Расстояние

1 голос
/ 28 июня 2011

Для самого маленького приложения, если вы не делаете предположений о том, где находится пользователь, вам нужно использовать какой-то веб-сервис, чтобы получить это.Краткий поиск в Google показывает this в качестве примера.

Если по какой-то причине вы ожидаете, что пользователи из небольшого географического района (например, всего в одном городе) будут использовать ваше приложениев базе данных / поисковом файле было бы возможно, но не для охвата всего округа.

...