自由格式文本字段到结构化地址字段

时间:2013-07-08 19:20:00

标签: regex google-maps google-contacts

Gmail / Contacts可以很好地将此地址解析为特定的地址字段。

7 Prasad Road, Narimedu,马杜赖, 泰米尔纳德邦, 印度

准确地解析为: 街:7 Prasad Road 邻里:Narimedu 城市:马杜赖 州/省:泰米尔纳德邦, 国家:印度

是否仍然使用Google Maps Contacts API将自由文本转换为这样的地址字段?

还有一点需要注意:这是非营利性的。不是商业网站。

我担心使用地理编码进行近似,因为我们在全球范围内工作,Google地图在某些国家/地区寻找合适的位置并不太准确。我仍然不想丢失用户输入的信息。通常我们需要能够按城市和州过滤地址,因此需要精确解析这些地址。其余的不应该丢失。通过地理编码,我发现它格式化地址以删除它不理解的字段。在gmail联系人中,它会单独留下并解析它能够解析的内容。

谢谢, Safris

更新: 谷歌地图api能够从用户输入的内容中获取邻居,城市,州,国家。当我点击api时执行此操作:http://maps.googleapis.com/maps/api/geocode/json?address=B19/F1%20Vigyanapuri,%20Vidyanagar,%20Hyd%20500044%20,India&sensor=false,然后返回以下结果:

  {
   "results" : [
      {
         "address_components" : [
            {
               "long_name" : "Vigyanpuri Colony Park",
               "short_name" : "Vigyanpuri Colony Park",
               "types" : [ "point_of_interest", "establishment" ]
            },
            {
               "long_name" : "APHB Colony",
               "short_name" : "APHB Colony",
               "types" : [ "neighborhood", "political" ]
            },
            {
               "long_name" : "Adikmet",
               "short_name" : "Adikmet",
               "types" : [ "sublocality", "political" ]
            },
            {
               "long_name" : "Hyderabad",
               "short_name" : "HYD",
               "types" : [ "locality", "political" ]
            },
            {
               "long_name" : "Hyderabad",
               "short_name" : "Hyderabad",
               "types" : [ "administrative_area_level_2", "political" ]
            },
            {
               "long_name" : "Andhra Pradesh",
               "short_name" : "Andhra Pradesh",
               "types" : [ "administrative_area_level_1", "political" ]
            },
            {
               "long_name" : "India",
               "short_name" : "IN",
               "types" : [ "country", "political" ]
            },
            {
               "long_name" : "500044",
               "short_name" : "500044",
               "types" : [ "postal_code" ]
            }
         ],
         "formatted_address" : "Vigyanpuri Colony Park, APHB Colony, Adikmet, Hyderabad, Andhra Pradesh 500044, India",
         "geometry" : {
            "location" : {
               "lat" : 17.40368240,
               "lng" : 78.51184130
            },
            "location_type" : "APPROXIMATE",
            "viewport" : {
               "northeast" : {
                  "lat" : 17.41432930,
                  "lng" : 78.52784870000001
               },
               "southwest" : {
                  "lat" : 17.39303490,
                  "lng" : 78.49583389999999
               }
            }
         },
         "partial_match" : true,
         "types" : [ "point_of_interest", "park", "establishment" ]
      }
   ],
   "status" : "OK"
}

但我不确定相信这有多远 - 据我所知,这似乎是准确的。我想获取用户输入的地址并使用谷歌地图api解析它并将其放在地图上并让他们纠正我,如果我错了。在Gmail /通讯录中,我可以将地址添加为文本字段,并通过“街道地址”对其进行解析,无论它无法解析,然后如果找到准确的城市,则将其放入,与State相同/省。我只是不确定它是如何将所有内容留在街道地址中的,它无法解析的内容。 Google的Contacts API是否允许我们在不将联系人保存到Google的情况下使用此功能。

感谢您对此进行调查! Safris

0 个答案:

没有答案