Fix: Retour aux bonnes coordonnées pour les points et ajout données GeoJSON
This commit is contained in:
@@ -1,5 +1,6 @@
|
|||||||
<script>
|
<script>
|
||||||
import { onMount } from 'svelte';
|
import { onMount } from 'svelte';
|
||||||
|
import { worldData } from '../data/world.js';
|
||||||
|
|
||||||
let canvas;
|
let canvas;
|
||||||
let visible = false;
|
let visible = false;
|
||||||
@@ -84,7 +85,7 @@
|
|||||||
canvas.addEventListener('touchmove', (e) => {
|
canvas.addEventListener('touchmove', (e) => {
|
||||||
if (isDragging && e.touches.length === 1) {
|
if (isDragging && e.touches.length === 1) {
|
||||||
const deltaX = e.touches[0].clientX - lastMouseX;
|
const deltaX = e.touches[0].clientX - lastMouseX;
|
||||||
rotation += deltaX * 0.01; // Retour au + pour le tactile
|
rotation -= deltaX * 0.01; // Garder le - pour le tactile aussi
|
||||||
lastMouseX = e.touches[0].clientX;
|
lastMouseX = e.touches[0].clientX;
|
||||||
e.preventDefault();
|
e.preventDefault();
|
||||||
}
|
}
|
||||||
@@ -242,7 +243,7 @@
|
|||||||
// Dessiner les points et la vague
|
// Dessiner les points et la vague
|
||||||
locations.forEach((loc, i) => {
|
locations.forEach((loc, i) => {
|
||||||
const phi = (90 - loc.lat) * Math.PI / 180;
|
const phi = (90 - loc.lat) * Math.PI / 180;
|
||||||
const theta = (loc.lon - rotation * 57.3) * Math.PI / 180;
|
const theta = (-loc.lon - rotation * 57.3) * Math.PI / 180; // Remettre le - devant loc.lon
|
||||||
|
|
||||||
const x = currentRadius * Math.sin(phi) * Math.cos(theta);
|
const x = currentRadius * Math.sin(phi) * Math.cos(theta);
|
||||||
const y = currentRadius * Math.cos(phi);
|
const y = currentRadius * Math.cos(phi);
|
||||||
|
|||||||
@@ -0,0 +1,85 @@
|
|||||||
|
// Données simplifiées des continents en GeoJSON
|
||||||
|
// Source: Natural Earth (simplified)
|
||||||
|
export const worldData = {
|
||||||
|
"type": "FeatureCollection",
|
||||||
|
"features": [
|
||||||
|
{
|
||||||
|
"type": "Feature",
|
||||||
|
"properties": { "name": "Africa" },
|
||||||
|
"geometry": {
|
||||||
|
"type": "Polygon",
|
||||||
|
"coordinates": [[
|
||||||
|
[-17.5, 35], [-5, 36], [10, 37], [35, 30], [42, 15],
|
||||||
|
[51, 12], [51, -2], [41, -12], [35, -25], [28, -33],
|
||||||
|
[20, -35], [18, -35], [12, -18], [10, -5], [8, 5],
|
||||||
|
[-5, 5], [-17, 15], [-17.5, 35]
|
||||||
|
]]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "Feature",
|
||||||
|
"properties": { "name": "Europe" },
|
||||||
|
"geometry": {
|
||||||
|
"type": "Polygon",
|
||||||
|
"coordinates": [[
|
||||||
|
[-10, 36], [-5, 43], [0, 50], [10, 54], [20, 59],
|
||||||
|
[30, 60], [40, 55], [30, 45], [20, 40], [10, 45],
|
||||||
|
[0, 40], [-10, 36]
|
||||||
|
]]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "Feature",
|
||||||
|
"properties": { "name": "Asia" },
|
||||||
|
"geometry": {
|
||||||
|
"type": "Polygon",
|
||||||
|
"coordinates": [[
|
||||||
|
[26, 40], [40, 45], [60, 50], [80, 55], [100, 60],
|
||||||
|
[120, 60], [140, 50], [145, 40], [135, 30], [120, 20],
|
||||||
|
[100, 10], [80, 15], [70, 25], [60, 30], [45, 35],
|
||||||
|
[26, 40]
|
||||||
|
]]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "Feature",
|
||||||
|
"properties": { "name": "North America" },
|
||||||
|
"geometry": {
|
||||||
|
"type": "Polygon",
|
||||||
|
"coordinates": [[
|
||||||
|
[-170, 65], [-165, 68], [-150, 70], [-130, 70], [-100, 70],
|
||||||
|
[-80, 68], [-65, 60], [-55, 50], [-65, 45], [-75, 40],
|
||||||
|
[-80, 35], [-85, 30], [-90, 25], [-95, 20], [-105, 20],
|
||||||
|
[-110, 25], [-115, 30], [-120, 35], [-125, 40], [-130, 45],
|
||||||
|
[-135, 50], [-140, 55], [-150, 58], [-160, 60], [-170, 65]
|
||||||
|
]]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "Feature",
|
||||||
|
"properties": { "name": "South America" },
|
||||||
|
"geometry": {
|
||||||
|
"type": "Polygon",
|
||||||
|
"coordinates": [[
|
||||||
|
[-35, -5], [-38, -15], [-40, -20], [-48, -25], [-58, -35],
|
||||||
|
[-65, -45], [-70, -55], [-68, -55], [-73, -45], [-72, -35],
|
||||||
|
[-70, -25], [-75, -15], [-78, -5], [-80, 0], [-77, 5],
|
||||||
|
[-75, 10], [-70, 12], [-60, 8], [-50, 5], [-35, -5]
|
||||||
|
]]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "Feature",
|
||||||
|
"properties": { "name": "Australia" },
|
||||||
|
"geometry": {
|
||||||
|
"type": "Polygon",
|
||||||
|
"coordinates": [[
|
||||||
|
[113, -22], [130, -12], [135, -12], [140, -18], [145, -20],
|
||||||
|
[150, -25], [153, -30], [150, -35], [145, -38], [140, -38],
|
||||||
|
[135, -35], [130, -32], [125, -32], [120, -35], [115, -35],
|
||||||
|
[113, -30], [113, -22]
|
||||||
|
]]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
};
|
||||||
Reference in New Issue
Block a user