photo-sphere-viewer marker按住鼠标移动位置
时间: 2023-07-08 12:47:23 浏览: 203
photo-sphere-viewer是一款基于WebGL的全景图像查看器,它支持添加marker来标记全景图像上的特定位置。如果您想要按住鼠标并移动marker的位置,可以实现以下步骤:
1. 在添加marker时,为其设置可拖动属性:
```js
var marker = viewer.createMarker({
id: 'marker1',
longitude: 0,
latitude: 0,
image: 'marker.png',
width: 32,
height: 32,
draggable: true // 设置可拖动
});
```
2. 监听marker的drag事件,实现拖动时的操作:
```js
marker.on('drag', function(event) {
var longitude = event.longitude;
var latitude = event.latitude;
// 根据拖动后的经纬度设置marker的位置
marker.set({
longitude: longitude,
latitude: latitude
});
});
```
这样,当您在全景图像上按住marker并移动鼠标时,就可以拖动marker的位置了。
相关问题
photo-sphere-viewer5.1 marker按住鼠标移动位置
要在Photo Sphere Viewer 5.1中按住鼠标移动Marker位置,您可以使用以下代码:
```javascript
// 获取标记对象
var marker = viewer.getMarker(markerId);
// 在mousedown事件上更新标记位置
marker.on('mousedown', function(event) {
// 阻止默认行为和事件传播
event.preventDefault();
event.stopPropagation();
// 获取场景坐标系中的鼠标位置
var mousePosition = viewer.mouseToCoords(event.clientX, event.clientY);
// 更新标记位置
marker.setPosition(mousePosition);
});
// 在mouseup事件上保存标记位置
marker.on('mouseup', function(event) {
// 保存标记位置
marker.save();
});
```
其中,`markerId`是要移动的标记的ID,`viewer`是Photo Sphere Viewer对象。在mousedown事件中,我们获取鼠标位置并更新标记位置;在mouseup事件中,我们保存标记位置以便下次加载时使用。
photo-sphere-viewer5.1 marker按住鼠标移动位置demo
以下是一个简单的demo,演示如何在Photo Sphere Viewer 5.1中按住鼠标移动Marker位置:
```html
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Photo Sphere Viewer 5.1 Marker Demo</title>
<style>
#viewer {
width: 100%;
height: 500px;
}
</style>
</head>
<body>
<div id="viewer"></div>
<script src="https://cdn.jsdelivr.net/npm/three/build/three.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/photo-sphere-viewer/dist/photo-sphere-viewer.min.js"></script>
<script>
// 创建Photo Sphere Viewer对象
var viewer = new PhotoSphereViewer({
container: 'viewer',
panorama: 'https://photo-sphere-viewer.js.org/assets/Bryce-Canyon-National-Park-Mark-Doliner.jpg',
navbar: true,
markers: [
{
id: 'marker1',
longitude: 0.5,
latitude: 0.2,
image: 'https://photo-sphere-viewer.js.org/assets/pin-red.png',
width: 32,
height: 32,
anchor: 'bottom center',
},
],
});
// 获取标记对象
var marker = viewer.getMarker('marker1');
// 在mousedown事件上更新标记位置
marker.on('mousedown', function(event) {
// 阻止默认行为和事件传播
event.preventDefault();
event.stopPropagation();
// 获取场景坐标系中的鼠标位置
var mousePosition = viewer.mouseToCoords(event.clientX, event.clientY);
// 更新标记位置
marker.setPosition(mousePosition);
});
// 在mouseup事件上保存标记位置
marker.on('mouseup', function(event) {
// 保存标记位置
marker.save();
});
</script>
</body>
</html>
```
在这个demo中,我们在Photo Sphere Viewer中添加了一个标记,并使用上面提到的代码来实现按住鼠标移动Marker位置的功能。您可以在https://codepen.io/pen/GRvKyNL 上查看该demo的效果。
阅读全文