我一直在使用Google Maps API中的Geocoder服务为我的地图上的搜索框供电。我希望允许用户按地址,城市和坐标以及可能支持的任何其他内容自由搜索。直到最近,如果我将纬度/经度坐标传递给地理编码器,它只会返回这些特定坐标的结果,但最近它已更改为进行反向查找并向我提供坐标的最近地址。我实际上想要直接在坐标处的位置,因为这是最相关的。
如何从搜索框中解析各种输入形式的坐标或让地理编码器恢复到之前的行为?
答案 0 :(得分:0)
我不确定为什么它会改变为显示反向地理编码,而不会看到代码。不过,我建议您使用Places API库的Autocomplete feature。
答案 1 :(得分:0)
难道你不能只使用正则表达式来检查输入的输入是否是lat / lng对?然后如果它解析那对并直接导航到坐标。类似的东西:
var latLngRegex = /^(\-?\d+(\.\d+)?),\s*(\-?\d+(\.\d+)?)$/; //Regex for checking that it is a latlng pair that has been entered
var address = document.getElementById("txt_googlesearch").value;
if (address=='' || address=='Search') {
return;
}
if (latLngRegex.test(address)) //Run the regex against the entered value
{
var coords = address.split(","); //Split the address into 2 decimal values
var mapPoint = new GLatLng(parseInt(coords[0]), parseInt(coords[1])); //Create a gLatLng from the split values
map.setCenter(mapPoint); //Move the map to the entered location
return;
}
//Call Geocoder as before