我想使用一个输入进行搜索:
- 搜索关键字
ex:'台湾'
- 搜索纬度和经度
ex:'22,23'
搜索框如下:
// listen the searchBox input event 'places_changed'
const pacInput = document.getElementById('pac-input')
const searchBox = new google.maps.places.SearchBox(pacInput)
searchBox.addListener('places_changed', function() {
...
})
地理编码器如下:
// by click or any event you want to trigger
const geocoder = new google.maps.Geocoder()
geocoder.geocode({
location: latLng
}, (results, status) => {
...
})
Google Map可以在一个输入中执行这两个功能,是否可以将它们组合在一起?
(我已经听了变化的地方。如果没有地方,请搜索纬度和经度。但是我发现一旦该地点变化触发,它将始终在结果中占有一席之地,因此它赢了't搜索纬度和经度。)
您可以使用JavaScript进行解决方法。请使用此作为参考。我修改了您的代码。您需要添加一个条件,该条件检查是地址还是坐标。
var address = document.getElementById('address').value;
var addressSplit = address.split(',');
var geo;
var addressObj;
if ( addressSplit.length !== 2 ) {
addressObj = { 'address' : address };
} else {
var lat = addressSplit[0].replace(/s/g, '');
var lng = addressSplit[1].replace(/s/g, '');
if ( !isNaN(lat) && !isNaN(lng) ) {
addressObj = { 'location' : { 'lat' : parseFloat( lat ), 'lng' : parseFloat( lng ) } };
} else {
addressObj = { 'address' : address };
}
}