我在使用 Google Maps API 和数据库驱动的 map 时遇到了很多麻烦。在上一个问题中,我曾询问过有关将地址更快地地理编码到 map 的问题,基本上我需要做的是将 Lat/Lng 存储到数据库中并从那里创建 map ,而不是在加载 map 时进行地理编码。
但是,我不确定具体该怎么做。我知道基本前提 - 1)用户注册并输入他们的地址。 2)数据库应该存储用户的信息,连同地址。 3)地址需要进行地理编码,然后添加到数据库中的纬度/经度字段。 4) 然后可以通过循环涉及 Lat/Lng 字段的查询将标记放置在 map 上。
任何想法如何做到这一点?我正在使用 ColdFusion、SQL Server。
最佳答案
您可以使用 Google's Geocoding Service为了这。 API 非常简单。您在 url 中发送一个地址,它返回一些带有地理编码结果的 xml。更好的是,RiaForge 上有一个名为 Google Geocoder v3 的项目这将为您完成所有工作。
这是 CFC 的一些示例代码:
<cfinvoke component="googlegeocoder3" method="googlegeocoder3" returnvariable="variables.geocode_query1">
<cfinvokeargument name="address" value="1600 Amphitheatre Parkway, Mountain View, CA">
<cfinvokeargument name="ShowDetails" value="false">
</cfinvoke>
<cfdump var="#variables.geocode_query1#">
至于何时进行地理编码,您有两种选择。一种是在他们注册时做——从注册表中获取地址,调用地理编码服务获取纬度/经度,然后将所有内容保存到数据库中。另一种选择是从注册中保存地址,然后有一个单独的计划任务来定期检查和地理编码任何未地理编码的地址。
关于javascript - 用户输入注册然后地理编码到数据库中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3567119/