Javascript 如何使用谷歌地图API搜索框获取精确坐标?

Javascript 如何使用谷歌地图API搜索框获取精确坐标?,javascript,api,google-maps,geocoding,Javascript,Api,Google Maps,Geocoding,我试图找出如何使用GoogleMapsJavaScriptAPI位置搜索框移动到精确的坐标 使用文档中的示例,我添加了两个警报: //此示例使用Google Place Autocomplete将搜索框添加到地图中 //特色。人们可以进入地理搜索。搜索框将返回一个 //包含位置和预测搜索词组合的拾取列表。 //此示例需要Places库。包括图书馆=地方 //第一次加载API时的参数。例如: // 函数initAutocomplete(){ var map=new google.maps.ma

我试图找出如何使用GoogleMapsJavaScriptAPI位置搜索框移动到精确的坐标

使用文档中的示例,我添加了两个警报:

//此示例使用Google Place Autocomplete将搜索框添加到地图中
//特色。人们可以进入地理搜索。搜索框将返回一个
//包含位置和预测搜索词组合的拾取列表。
//此示例需要Places库。包括图书馆=地方
//第一次加载API时的参数。例如:
// 
函数initAutocomplete(){
var map=new google.maps.map(document.getElementById('map'){
中心:{
lat:-33.8688,
液化天然气:151.2195
},
缩放:13,
mapTypeId:'混合'
});
//创建搜索框并将其链接到UI元素。
var input=document.getElementById('pac-input');
var searchBox=newgoogle.maps.places.searchBox(输入);
map.controls[google.maps.ControlPosition.TOP_LEFT].push(输入);
var标记=[];
//侦听用户选择预测并检索时激发的事件
//关于那个地方的更多细节。
searchBox.addListener('places\u changed',function(){
var places=searchBox.getPlaces();
如果(places.length==0){
返回;
}
//清除旧的标记。
markers.forEach(函数(marker){
marker.setMap(空);
});
标记=[];
//对于每个位置,获取图标、名称和位置。
var bounds=new google.maps.LatLngBounds();
地点。forEach(功能(地点){
如果(!place.geometry){
log(“返回的位置不包含几何图形”);
返回;
}
警报(place.geometry.location.lat());
警报(place.geometry.location.lng());
变量图标={
url:place.icon,
大小:新谷歌地图大小(71,71),
来源:新google.maps.Point(0,0),
主播:新google.maps.Point(17,34),
scaledSize:new google.maps.Size(25,25)
};
//为每个地方创建一个标记。
markers.push(新的google.maps.Marker)({
地图:地图,
图标:图标,
标题:place.name,
位置:place.geometry.location
}));
if(place.geometry.viewport){
//只有地理代码具有视口。
联合(place.geometry.viewport);
}否则{
扩展(place.geometry.location);
}
});
映射边界(bounds);
});

}
因此,无论出于何种原因,谷歌的默认搜索框实现仅零星地支持坐标输入。正如评论中所建议的,有必要推出自己的解决方案

使用,您可以在找不到位置时进行响应,因此:

var places=searchBox.getPlaces();
如果(places.length==0){
var input=document.getElementById('pac-input');
var result=parseDMS(input.value);
var bounds=new google.maps.LatLngBounds();
var latlng=new google.maps.latlng(result.lat,result.lon);
边界扩展(latlng);
//创建一个标记
var marker=new google.maps.marker({
地图:地图,
标题:“坐标”,
职位:latlng
});
映射边界(bounds);
返回;

}
如果您知道要去的坐标,为什么要使用搜索框?我希望我的用户能够使用Google地图或Google Earth导航到坐标,该功能不属于Google地图JavaScript API v3搜索框的一部分(请参阅)。如果您想要这样做,您需要自己实现它。