【问题标题】:Google maps like auto-complete or auto-suggest API for postal addresses [closed]谷歌地图,如邮政地址的自动完成或自动建议 API [关闭]
【发布时间】:2010-10-01 05:54:04
【问题描述】:

我参与的项目需要邮政地址自动完成或自动建议功能(类似于谷歌地图的功能)。当用户开始输入数字,然后街道谷歌开始建议有效的选项。我想知道市场上是否有可用的 api(甚至是商业的)。

注意:我不是在寻找地址验证 API。

我还可以购买一个地址数据库并在其之上实现它。但是,如果我们需要构建一些健壮和复杂的东西,那就会涉及很多开发开销。任何好的指点都会有所帮助。

谢谢 巴拉

【问题讨论】:

    标签: c# wpf api autocomplete street-address


    【解决方案1】:

    这看起来可以为您提供与您正在搜索的解决方案类似的解决方案。如果您将 on_click 事件替换为 Javascript onkeyup,您应该能够实时检查地址。

    这是一个快速的分步集成指南,描述了如何将基于 RapidAddress 邮政编码的地址查找器添加到 HTML 网站。我们建议您先阅读 JavaScript 用户指南。 第1步 从下载部分下载最新版本的 JavaScript 类。您也可以使用集成包,它包含现成的 HTML 页面,作为起点可能很方便。 将 JavaScript 文件 crafty_postcode.class.js 上传到您的网络服务器并在您的 HTML 中引用它,您可能必须在 src 属性中使用相对或绝对路径:

    <script type="text/javascript" charset="ISO-8859-1" src="crafty_postcode.class.js">
    </script>
    

    注意:“ISO-8859-1”位很重要,因为 JS 脚本是压缩的。 第2步 创建和配置 JavaScript 对象:

    <script>
        var cp_obj = CraftyPostcodeCreate();
        cp_obj.set("access_token", "xxxxx-xxxxx-xxxxx-xxxxx"); // your token here
        cp_obj.set("result_elem_id", "crafty_postcode_result_display");
        cp_obj.set("form", "address");
        cp_obj.set("elem_company"  , "companyname");
        cp_obj.set("elem_street1"  , "address1");
        cp_obj.set("elem_street2"  , "address2");
        cp_obj.set("elem_street3"  , "address3");
        cp_obj.set("elem_town"     , "town");
        cp_obj.set("elem_county"   , "county");
        cp_obj.set("elem_postcode" , "postcode");
    </script>
    

    步骤 #3 在 HTML 中创建地址表单:

    <form method="post" name="address"> 
     Postcode:<br/>
     <input type="text" name="postcode"/>&nbsp;&nbsp;&nbsp;
     <button type="button" onclick="cp_obj.doLookup()">Find Address</button><br/>
     <span id="crafty_postcode_result_display">&nbsp;</span><br/>
     Company:<br/>
     <input type="text" name="companyname"/><br/>
     Address:<br/>
     <input type="text" name="address1"/><br/>
     <input type="text" name="address2"/><br/>
     <input type="text" name="address3"/><br/>
     Town:<br/>
     <input type="text" name="town"/><br/>
     County:<br/>
     <input type="text" name="county"/>
    </form>
    

    注意:“companyname”、“address2/3”和“county”是可选的,如果适合您的站点,您可以省略这些字段。请记住在第 2 步中从 JavaScript 配置中删除它们。例如,如果您不想要县字段:cp_obj.set("elem_county", ""); 注意“查找地址”按钮,onclick 操作调用 doLookup() 方法。 地址结果(或错误消息)将放置在 id="crafty_postcode_result_display" 的元素中。 全做完了! 如果由于任何原因无法正常工作,请将任何错误代码/消息通过电子邮件发送给我们。我们将很乐意提供帮助。如果您还没有阅读 JavaScript 用户指南,您可能还想阅读。

    见于:

    http://www.craftyclicks.co.uk/web-service/docs/javascript-address-finder-how-to-add-rapidaddress

    【讨论】:

    • 这是我一直在寻找的。谢谢
    【解决方案2】:

    您可以使用谷歌地理自动完成 api

    http://code.google.com/p/geo-autocomplete/

    这将为您提供与在 googlemaps 上获得的位置相同的自动完成功能。

    【讨论】:

    • 我对此做了一些研究,看起来我需要一张地图来绘制结果。否则,这将意味着违反使用条款。我不确定这是否完全正确。此外,javascript 解决方案将不起作用,因为这将在 WPF 应用程序中实现。我应该早点提到这一点。很抱歉。
    • 您可以将地图放在隐藏的 div 中,哈哈 ;) 至于 WPF,我不确定,但我知道自动完成在那里很容易。我的建议是您找出地理自动完成 api 发送给 google 的消息,并将其复制到您的 WPF 应用程序中,完全绕过对它的需求。
    猜你喜欢
    • 1970-01-01
    • 2021-04-12
    • 2016-04-01
    • 1970-01-01
    • 2016-11-17
    • 1970-01-01
    • 1970-01-01
    • 2023-03-22
    • 2013-03-23
    相关资源
    最近更新 更多