Google maps 如何使用谷歌地图API搜索地址?

Google maps 如何使用谷歌地图API搜索地址?,google-maps,google-maps-api-3,Google Maps,Google Maps Api 3,我正在开发一个简单的应用程序,其中我有100条带有地址的客户记录。要求有一个半径和地址字段。这两个字段将成为搜索客户的参数 例如: 半径=500英里,地址=纽约 结果应该是纽约附近500英里处的客户。对于数学,如果可以找到边界框,则需要harvesine公式或空间索引。互联网和stackoverflow上有许多关于harvesine公式的例子。空间索引通常是一个边框、矩形或正方形,可以使用空间填充曲线来降低维度并提高查询速度。阅读空间索引:。您应该首先在纽约标记一个位置,可能是文本输入中搜索给定

我正在开发一个简单的应用程序,其中我有100条带有地址的客户记录。要求有一个半径和地址字段。这两个字段将成为搜索客户的参数

例如: 半径=500英里,地址=纽约


结果应该是纽约附近500英里处的客户。

对于数学,如果可以找到边界框,则需要harvesine公式或空间索引。互联网和stackoverflow上有许多关于harvesine公式的例子。空间索引通常是一个边框、矩形或正方形,可以使用空间填充曲线来降低维度并提高查询速度。阅读空间索引:。

您应该首先在纽约标记一个位置,可能是文本输入中搜索给定的默认位置,或者进行地理编码,传递带方向的字符串,一旦标记了该点,就绘制一个半径为所需的圆,当你画这个圆圈时,你会计算每个客户地址记录与中心之间的距离,如果结果等于或小于500英里,则在客户记录中添加一个标记

例如,地理编码(假设自动完成)将类似于

<input type="text" id="prueba" size="50">
<div id="map-canvas" style="width:800px;height:550px"> </div>

google.maps.event.addListener(autocomplete, 'place_changed', function() {
     var place = autocomplete.getPlace();
      if (place.geometry.viewport) {
        map.fitBounds(place.geometry.viewport);
      } else {
        map.setCenter(place.geometry.location);
        map.setZoom(17); 
      }
    marker.setPosition(place.geometry.location);
}
从这里你可以计算出距离

var distance = google.maps.geometry.spherical.computeDistanceBetween(circleCenter, yourPosition);

另一个选项是在数据库上进行距离计算。假设您有一个关系数据库,并且每个客户地址记录都有lat/long。。。您可以对输入地址进行lat/long地理编码,然后使用SQL查询计算输入位置与客户之间的距离。然后按给定的半径过滤查询结果。根据查询结果,只需在地图上绘制过滤后的客户即可

在使用SQL计算从lat/long到lat/long的距离时,存在一些问题

您可以使用
google.maps.Geocoder
对给定地址的lat/long进行地理编码

var distance = google.maps.geometry.spherical.computeDistanceBetween(circleCenter, yourPosition);