我使用自动填充方法获取地方建议,当我点击要选择的地点时,我想提取位于Lat
下的Lng
和place.geometry.location
下方。
根据我的观察,密钥ib
和jb
随着每个会话而不断变化。有什么方法可以预测地提取Lat
和Lng
吗?
$(document).ready(function() {
var mapOptions = {
center : new google.maps.LatLng(-33.8688, 151.2195),
zoom : 13,
mapTypeId : google.maps.MapTypeId.ROADMAP
};
var map = new google.maps.Map(document.getElementById('map'), mapOptions);
$('#searchTextField').bind('keydown keypress', function() {
setTimeout(function() {
var inputQuery = $('#searchTextField').val();
if (inputQuery.length >= 2) {
//console.log(inputQuery);
/*
var service = new google.maps.places.AutocompleteService();
service.getPlacePredictions({
input : inputQuery
}, callback);
*/
var input = document.getElementById('searchTextField');
var options = {
types : ['geocode']
};
var autocomplete = new google.maps.places.Autocomplete(input, options);
// Acting on Selecting a place
google.maps.event.addListener(autocomplete, 'place_changed', function() {
//infowindow.close();
var place = autocomplete.getPlace();
console.log(place);
console.log(place.formatted_address);
console.log(place.name);
console.log(place.geometry.location);
console.log(place.geometry.location[0]);
// Show the map to the current location selected
if (place.geometry.viewport) {
map.fitBounds(place.geometry.viewport);
} else {
map.setCenter(place.geometry.location);
map.setZoom(17);
// Why 17? Because it looks good.
}
var marker = new google.maps.Marker({
position : place.geometry.location,
map : map,
draggable : true,
});
$.each(place.geometry.location, function(key, value) {
console.log(key + ": " + value);
});
});
}
}, 0);
});
});
答案 0 :(得分:37)
place.geometry.location
是LatLng
,因此您可以调用.lat()
和.lng()
方法。
var location = place.geometry.location;
var lat = location.lat();
var lng = location.lng();
您会看到在检查此对象时会出现这些方法。
切勿使用未发现的文件,例如您发现的ib
和jb
。 Google使用Closure Compiler或类似工具编译Maps API,该工具会为私有属性和变量生成随机名称。