Leinwandkoordinaten.
Breitengrad und Längengrad (geografische Koordinaten).
Jetzt muss ich die Pixelkoordinaten auf dem Map.jpg-Bild bestimmen, die der Mausposition entsprechen. Im Wesentlichen möchte ich die geografischen Koordinaten der Maus (Breiten- und Längengrad) den Pixelkoordinaten der Map.jpg-Datei zuordnen.
Wie kann ich das genau berechnen? Für Tipps oder Codebeispiele wäre ich sehr dankbar. Danke!
Code: Select all
document.getElementById('screen').addEventListener('mousemove', (event) => {
const rect = event.target.getBoundingClientRect();
const mouse = new THREE.Vector2(
((event.clientX - rect.left) / rect.width) * 2 - 1,
-((event.clientY - rect.top) / rect.height) * 2 + 1
);
const raycaster = new THREE.Raycaster();
raycaster.setFromCamera(mouse, map.camera);
const sphere = new THREE.Sphere(new THREE.Vector3(0, 0, 0), radius);
const intersection = new THREE.Vector3();
if (raycaster.ray.intersectSphere(sphere, intersection)) {
let longitude = Math.atan2(intersection.z, intersection.x) * (180 / Math.PI);
let latitude = Math.asin(intersection.y / radius) * (180 / Math.PI);
}
});