高德地图搜索结果上的红点标记点击无法获取到经纬度如何获取 js 代码
时间: 2024-03-23 22:40:41 浏览: 20
在高德地图中,当你点击搜索结果上的红点标记时,可以通过监听 `markerClick` 事件来获取该标记的经纬度信息。具体的实现方法如下:
```javascript
var map = new AMap.Map('container', {
zoom: 10,
center: [116.39, 39.9]
});
var placeSearch = new AMap.PlaceSearch({
pageSize: 10,
pageIndex: 1,
map: map,
panel: "panel"
});
AMap.event.addListener(placeSearch, 'markerClick', function(e) {
console.log(e.data.location); // 获取标记的经纬度信息
});
```
在上面的代码中,我们通过 `AMap.event.addListener` 方法监听了 `markerClick` 事件,当用户点击搜索结果上的红点标记时,会触发该事件,并将点击的标记信息传递给回调函数中的 `e` 参数。
通过 `e.data.location` 可以获取到标记的经纬度信息,该属性返回一个 `LngLat` 对象,包含了标记的经度和纬度信息。你可以通过 `e.data.location.lng` 和 `e.data.location.lat` 来分别获取经度和纬度的值。
相关问题
高德地图搜索结果上的红点标记点击无法获取到经纬度问题
当你点击搜索结果上的红点标记时,可以通过监听 `onMouseClick` 事件来获取该标记所在位置的经纬度信息。具体的实现方法如下:
1. 在创建地图时,设置 `isHotspot` 为 true,以启用热点事件。
```javascript
var map = new AMap.Map('container', {
zoom: 10,
center: [116.39, 39.9],
isHotspot: true // 启用热点事件
});
```
2. 监听 `onMouseClick` 事件,获取点击位置的经纬度信息。
```javascript
var placeSearch = new AMap.PlaceSearch({
pageSize: 10,
pageIndex: 1,
map: map,
panel: "panel"
});
AMap.event.addListener(placeSearch, 'markerClick', function(e) {
map.on('hotspotclick', function (result) {
console.log(result.lnglat.getLng(), result.lnglat.getLat());
});
});
```
在上面的代码中,我们通过 `map.on('hotspotclick', function(result) { ... })` 监听了地图上的热点事件,当用户点击地图上的一个热点(例如搜索结果上的红点标记)时,会触发 `hotspotclick` 事件,同时将点击位置的经纬度信息传递给回调函数中的 `result` 参数。通过 `result.lnglat.getLng()` 和 `result.lnglat.getLat()` 方法,我们可以获取到点击位置的经度和纬度信息。
高德地图 搜索地址后 地图上出现标记的红点点击怎么获取经纬度 js 代码
在高德地图 JavaScript API 中,可以通过添加 click 事件监听器来实现获取点击标记的经纬度。具体实现步骤如下:
1. 在地图上搜索地址并添加标记:
```
// 使用地址解析功能,将地址解析为经纬度
var geocoder = new AMap.Geocoder({
city: '全国' // 城市,默认值:全国
});
geocoder.getLocation('北京市朝阳区望京SOHO', function(status, result) {
if (status === 'complete' && result.info === 'OK') {
// 解析成功时,获取经纬度信息
var location = result.geocodes[0].location;
var latitude = location.lat;
var longitude = location.lng;
// 创建 Marker 对象
var marker = new AMap.Marker({
position: location, // 设置Marker坐标
title: 'Marker', // 设置Marker标题
visible: true // 设置Marker可见性
});
// 添加Marker到地图上
marker.setMap(map);
}
});
```
2. 在标记上添加 click 事件监听器:
```
// 创建 Marker 对象
var marker = new AMap.Marker({
position: [116.397428, 39.90923], // 设置Marker坐标
title: 'Marker', // 设置Marker标题
visible: true // 设置Marker可见性
});
// 添加Marker到地图上
marker.setMap(map);
// 设置Marker点击事件监听器
AMap.event.addListener(marker, 'click', function() {
// 获取Marker的经纬度信息
var position = marker.getPosition();
var latitude = position.getLat();
var longitude = position.getLng();
// 执行其他操作
});
```
以上代码示例中,获取到的经纬度信息分别保存在 latitude 和 longitude 变量中。您可以根据实际需求进行处理。