使用google map实现周边搜索的功能_uniapp 利用map标签 开发地图定位和搜索关键字查询功能...
时间: 2023-08-02 07:06:57 浏览: 160
baidu_map.zip_Api. Map. Baidu_java baidu map_百度 map_百度地图定位
好的,我了解你的问题了。那么,针对你的问题,我可以提供以下的解决方案:
1. 首先,在uniapp中使用map标签,进行地图定位和搜索关键字查询功能的开发。
2. 然后,使用Google Maps API,调用周边搜索的功能,在地图上显示搜索结果。
下面,我将分步骤地详细介绍这个解决方案:
步骤1:使用map标签进行地图定位和搜索关键字查询功能的开发
在uniapp中,可以使用map标签进行地图开发。具体步骤如下:
1. 在uniapp的页面中引入map标签:
```
<map :id="map" :latitude="latitude" :longitude="longitude" :markers="markers" @markertap="markertap"></map>
```
2. 在data中定义地图相关的变量:
```
data: {
map: 'myMap',
latitude: '',
longitude: '',
markers: []
}
```
3. 在mounted生命周期中获取当前位置:
```
mounted() {
uni.getLocation({
type: 'gcj02',
success: res => {
this.latitude = res.latitude;
this.longitude = res.longitude;
}
});
}
```
4. 在methods中定义搜索功能:
```
methods: {
search(e) {
let keyword = e.detail.value;
if (!keyword) {
return;
}
uni.request({
url: 'https://apis.map.qq.com/ws/place/v1/search',
data: {
keyword: keyword,
location: `${this.latitude},${this.longitude}`,
key: '你的key',
radius: 1000
},
success: res => {
let data = res.data;
if (data.status === 0) {
let markers = data.data.map(item => {
return {
id: item.id,
latitude: item.location.lat,
longitude: item.location.lng,
title: item.title,
iconPath: '/static/images/marker.png',
width: 32,
height: 32
};
});
this.markers = markers;
}
}
});
},
markertap(e) {
console.log(e.markerId);
}
}
```
步骤2:使用Google Maps API调用周边搜索的功能
1. 在Google Cloud Console中创建一个项目,并启用Maps JavaScript API。
2. 在uniapp中引入Google Maps API:
```
<script src="https://maps.googleapis.com/maps/api/js?key=你的API密钥"></script>
```
3. 在methods中使用Google Maps API调用周边搜索的功能:
```
methods: {
search(e) {
let keyword = e.detail.value;
if (!keyword) {
return;
}
let service = new google.maps.places.PlacesService(document.createElement('div'));
let request = {
location: new google.maps.LatLng(this.latitude, this.longitude),
radius: 1000,
query: keyword
};
service.textSearch(request, (results, status) => {
if (status === google.maps.places.PlacesServiceStatus.OK) {
let markers = results.map(item => {
return {
id: item.id,
latitude: item.geometry.location.lat(),
longitude: item.geometry.location.lng(),
title: item.name,
iconPath: '/static/images/marker.png',
width: 32,
height: 32
};
});
this.markers = markers;
}
});
},
markertap(e) {
console.log(e.markerId);
}
}
```
以上就是使用Google Maps API实现周边搜索的功能的具体步骤。希望能帮到你。
阅读全文