Google 地图 getPlace().geometry 始终未定义
Google maps getPlace().geometry always undefined
我的自动完成功能很好用,我已经包含了几何库,
<script defer src="https://maps.googleapis.com/maps/api/js?libraries=places,geometry&key=xxaSyxxxxxxxx9xx&callback=initAutocomplete"></script>
这是 html+js :
<input class="forminput" id="autocomplete" maxlength="30" type=text placeholder="Ex: street.."></input>
let placeSearch;
let autocomplete;
const componentForm = {
street_number: "short_name",
route: "long_name",
locality: "long_name",
administrative_area_level_1: "short_name",
country: "long_name",
postal_code: "short_name",
};
function initAutocomplete() {
autocomplete = new google.maps.places.Autocomplete(
document.getElementById("autocomplete"),
{ types: ["geocode"] }
);
//address only
autocomplete.setFields(["address_component"]);
//populate
autocomplete.addListener("place_changed", fillInAddress);
}
当我阅读结果时,地方没有 geometry
属性 :
function fillInAddress() {
const place = autocomplete.getPlace();
console.log(place); // is good
console.log(place.geometry); // is undefined all the time
for (const component of place.address_components) {
const addressType = component.types[0];
const val = component[componentForm[addressType]];
alert(addressType + " " + val); // ****** this is good !!!
}
如何让几何图形起作用?我需要 lat/log .
对于奋斗的人来说,这很简单,
autocomplete.setFields(["address_component","geometry"]);
出于某种原因 Google 的文档几乎将它隐藏在他们的教程中,但您必须在此处添加它 ALSO 才能使其正常工作。
这在不包含 geometry
库的情况下也有效。
我的自动完成功能很好用,我已经包含了几何库,
<script defer src="https://maps.googleapis.com/maps/api/js?libraries=places,geometry&key=xxaSyxxxxxxxx9xx&callback=initAutocomplete"></script>
这是 html+js :
<input class="forminput" id="autocomplete" maxlength="30" type=text placeholder="Ex: street.."></input>
let placeSearch;
let autocomplete;
const componentForm = {
street_number: "short_name",
route: "long_name",
locality: "long_name",
administrative_area_level_1: "short_name",
country: "long_name",
postal_code: "short_name",
};
function initAutocomplete() {
autocomplete = new google.maps.places.Autocomplete(
document.getElementById("autocomplete"),
{ types: ["geocode"] }
);
//address only
autocomplete.setFields(["address_component"]);
//populate
autocomplete.addListener("place_changed", fillInAddress);
}
当我阅读结果时,地方没有 geometry
属性 :
function fillInAddress() {
const place = autocomplete.getPlace();
console.log(place); // is good
console.log(place.geometry); // is undefined all the time
for (const component of place.address_components) {
const addressType = component.types[0];
const val = component[componentForm[addressType]];
alert(addressType + " " + val); // ****** this is good !!!
}
如何让几何图形起作用?我需要 lat/log .
对于奋斗的人来说,这很简单,
autocomplete.setFields(["address_component","geometry"]);
出于某种原因 Google 的文档几乎将它隐藏在他们的教程中,但您必须在此处添加它 ALSO 才能使其正常工作。
这在不包含 geometry
库的情况下也有效。