如果您使用Angular Google Maps库和PlacesService,并且无法在结果中获取经度和纬度信息,可能是因为您没有正确处理PlacesService的回调函数。
以下是一个示例解决方法:
import { Component, OnInit } from '@angular/core';
import { MapsAPILoader } from '@agm/core';
export class MyComponent implements OnInit {
constructor(private mapsAPILoader: MapsAPILoader) {}
ngOnInit() {
// 加载地图API
this.mapsAPILoader.load().then(() => {
// 初始化地图
const map = new google.maps.Map(document.getElementById('map'), {
center: { lat: -34.397, lng: 150.644 },
zoom: 8
});
// 初始化PlacesService
const placesService = new google.maps.places.PlacesService(map);
// 使用PlacesService进行地点搜索
const request = {
query: 'restaurant',
locationBias: map.getBounds()
};
placesService.textSearch(request, (results, status) => {
if (status === google.maps.places.PlacesServiceStatus.OK) {
// 处理结果
for (let i = 0; i < results.length; i++) {
const place = results[i];
console.log('经度:', place.geometry.location.lng());
console.log('纬度:', place.geometry.location.lat());
}
}
});
});
}
}
在上述代码中,我们首先加载地图API,然后在地图加载完成后初始化PlacesService。接下来,我们使用PlacesService的textSearch方法进行地点搜索。在回调函数中,我们可以从结果中获取经度和纬度信息。
请确保您已在Angular项目中正确引入Angular Google Maps库,并在组件的HTML模板中包含一个具有'id="map"'的元素,用于显示地图。
这是一个基本的解决方法示例,您可以根据您的具体需求进行修改和扩展。