我有一个用户需要填写的表单,在触摸屏键盘上耗费时间,所以我希望根据一些用户输入“自动填充”建议,例如zipcode
而不是用户输入他们的地址,城市,州,邮政编码
用户可以输入地址,邮政编码并获取城市和州的自动填充建议。
如果它们不正确,他们可以编辑它们,但很多时候它会是正确的,特别是对于州。
如何在具有最小应用占用空间的Android中完成此操作。我已经看到谷歌有某种地理编码API,但我不确定它是否与android相关
任何洞察力
答案 0 :(得分:1)
对于最小的应用程序占用空间,如果您不对用户的位置做出任何假设,则需要使用某种Web服务来实现此目的。粗略的谷歌搜索以this为例。
如果出于某种原因,您只希望来自较小地理区域(例如一个城市)的用户使用您的应用程序,那么烘焙数据库/查找文件将是可行的,但不适用于覆盖整个县。< / p>
答案 1 :(得分:1)
对于我们的网络应用,我们使用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");
});
//]] GT; 邮政编码距离