Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google maps 从邮政编码检索完全限定的街道地址_Google Maps_Openstreetmap_Street Address_Zipcode_Postal Code - Fatal编程技术网

Google maps 从邮政编码检索完全限定的街道地址

Google maps 从邮政编码检索完全限定的街道地址,google-maps,openstreetmap,street-address,zipcode,postal-code,Google Maps,Openstreetmap,Street Address,Zipcode,Postal Code,我有一个表单,我的用户需要在其中输入以下位置数据: 完整地址行(街道地址、公寓、套房、单元、建筑、楼层) 门牌号 城市 州/省/地区 邮政编码 国家 为了简化此表单的填写,我希望通过允许用户只输入其国家、邮政编码和门牌号,自动填写完全限定的地址(地址行、城市、省等) 这三个项目足以查找美国的地址,对吗?还是需要更少或更多的信息?每个国家对这个问题的答案都不同吗?此外,是否有可用于此目的的服务、API或库(例如Google Maps或OpenStreetMap)?您可以通过使用Google Map

我有一个表单,我的用户需要在其中输入以下位置数据:

  • 完整地址行(街道地址、公寓、套房、单元、建筑、楼层)
  • 门牌号
  • 城市
  • 州/省/地区
  • 邮政编码
  • 国家
  • 为了简化此表单的填写,我希望通过允许用户只输入其国家、邮政编码和门牌号,自动填写完全限定的地址(地址行、城市、省等)


    这三个项目足以查找美国的地址,对吗?还是需要更少或更多的信息?每个国家对这个问题的答案都不同吗?此外,是否有可用于此目的的服务、API或库(例如Google Maps或OpenStreetMap)?

    您可以通过使用Google Maps反向地理编码API轻松实现这一点。这里有一个链接到它的文档

    我只能回答有关美国地址的问题(我在SmartyStreets工作),但答案是否定的,那不行

    感谢您对改善用户体验的渴望。不幸的是,我不建议尝试这种方法,原因如下:

    美国邮政编码的整体长度实际上为11位(12位为校验位):

    • 前三位是SCF(分段中心设施),有点像区号
    • 前五位数字是指定一组承运商路线的典型5位邮政编码
    • 接下来的4位数字更精确,通常将地址缩小到块级别
    • 除条形码外,后两位数字很少使用,但它们表示交货点。理论上,这将指定特定的房屋、公寓或邮箱,但在现实中,有时11位代码是不明确的(在大型综合体、街道街区或PO设施中很常见)。交付点通常与房屋或公寓号相关,但并不总是如此
    所以在你的情况下:

    • 了解这个国家的情况将可能性缩小到350000000多个地址
    • 知道5位数的邮政编码可以将其缩小到大约10000多个地址(重要提示:不是每个人都知道5位数的邮政编码,他们会改变。更重要的是,他们可能不确定是输入邮政信箱邮政编码还是家里的邮政编码。如果家里没有收到邮件怎么办?或者如果他们在军队,5位数的邮政编码在不断变化怎么办?)
    • 知道门牌号可能会将候选地址缩小到1-1000之间。这取决于邮政编码有多大。(
    因此,不,仅仅知道地址的这三部分是不够的。在这一点上,国家实际上一文不值,而邮政编码最多是特定于地区/城市的。一个邮政编码中的门牌号可能会出现几十次,甚至几百次。(我在乡下长大,我们的门牌号是唯一的,但这很少见。)

    是的,这个问题的答案因国而异,但这一推理对大多数发达国家都适用。欠发达国家的邮政系统没有这样的组织

    有没有一种服务可以做到这一点?如果你不想让你的用户浏览几十个或几百个结果,那就没有了。如果他们需要浏览的不仅仅是几个,你最好让他们键入他们的完整地址

    我前几天刚读过。你可能会发现它很有用

    既然我已经为你的想法下了世界末日的雨,那么另一种方法呢?当然,我偏爱,在用户打字时,它建议地址,地理位置靠近用户。我应该提到,它是免费的。在用户完成或选择其中一个建议之前,它实际上不会验证地址,但它确实减少了击键次数。

    更进一步,我建议将国家作为地址表单的第一个字段。这样,您可以根据他们选择的国家更改表单的格式。如果您使用LiveAddress之类的服务,您可以让用户在单个字段中以他们喜欢的格式键入地址,而不是跨y中的多个文本框我们的任意顺序,因为LiveAddress可以解析他们的输入。

    好问题

    这三项内容是否足以查找美国的地址?

    不。不幸的是,这三个地址会让你在世界上找到上百个可能的地址 我们

    每个国家对这个问题的答案都不同吗?

    是的!不同国家的邮政系统差别很大,你是他们的用户,对他们希望提供的东西会有不同的期望——例如,英国人不希望必须输入完整的地址

    在英国、加拿大和澳大利亚,你通常可以通过门牌号和邮政编码找到一个地址。但是,你不能保证这一点。可能有子网站信息或业务信息需要与用户进行一些互动,以检查你是否有正确的地址

    有些国家,如法国,没有完整的房屋号码覆盖范围。有了这些,你可以使用房屋号码和邮政编码,但取决于城镇,你必须改变你的行为,要么信任并接受输入,要么提示他们更正

    规划工作流程时,另一个重要的考虑因素是需要考虑到可能不知道其邮政编码/邮政编码的人。这种情况并不经常发生,但有时人们刚搬家,或者有时邮政编码/邮政编码属性会发生变化,因此灵活处理所需信息非常重要

    是否有可用于此目的的服务、API或库?

    是-有几种解决方案提供捕获全局地址的能力
    <geodata>
    <latt>1.32035</latt>
    <longt>103.87430</longt>
    <elevation/>
    <standard>
    <stnumber>88</stnumber>
    <addresst>88 GEYLANG BAHRU</addresst>
    <postal>339696</postal>
    <city>Singapore</city>
    <prov>SG</prov>
    <countryname>Singapore</countryname>
    <confidence>0.5</confidence>
    </standard>
    </geodata>
    
    <geodata>
    <latt>53.06060</latt>
    <longt>8.58388</longt>
    <elevation/>
    <standard>
    <stnumber>20</stnumber>
    <addresst>20 Bokenbusch</addresst>
    <postal>27777</postal>
    <city>Ganderlesee</city>
    <prov>DE</prov>
    <countryname>Germany</countryname>
    <confidence>0.5</confidence>
    </standard>
    <alt>
    <loc>
    <city>Ganderkesee</city>
    <latt>53.06868</latt>
    <longt>8.57437</longt>
    <cc>951</cc>
    </loc>
    <loc>
    <city>Bremen</city>
    <latt>53.07675</latt>
    <longt>8.57559</longt>
    <cc>172</cc>
    </loc>
    <loc>
    <city>Schierbrok</city>
    <latt>53.08639</latt>
    <longt>8.58037</longt>
    <cc>166</cc>
    </loc>