Domanda

Ho una mappa degli Stati Uniti, e ho un sacco di pixel coordinate su quella mappa che corrispondono a luoghi di interesse. Questi sono dinamicamente disegnati sulla mappa in fase di esecuzione in base alle varie impostazioni e le statistiche.

Ora ho bisogno di passare a una mappa diversa degli Stati Uniti, che è di diverse dimensioni, e l'angolo in alto a sinistra della mappa è in un po 'mettere in mezzo all'oceano.

Così ho raccolto manualmente un piccolo insieme di coordinate per ogni mappa che corrispondono l'uno all'altro. Ad esempio, il punto (244.312) sulla prima mappa corrisponde al punto (598.624) sulla seconda mappa, e (1323,374) sulla prima mappa corrisponde a (2793,545) sulla seconda mappa, ecc.

Così sto cercando di decidere la traduzione per le dimensioni X e Y. Quindi, dato un insieme di punti per i vecchi e nuove mappe, come faccio a trovare le equazioni x' = A*x + C e y' = B*x + D di tradurre automaticamente qualsiasi punto dalla vecchia mappa a quella nuova?

È stato utile?

Soluzione

Si hanno le coordinate dei due punti su entrambe le mappe, (x 1 , y 1 ), (x ' 1 , y' 1 ), (x 2 , y 2 ) e (x ' 2 , y' 2 ).

A = (x'1 - x'2)/(x1 - x2)
B = (y'1 - y'2)/(y1 - y2)
C = x'1 - A x1
D = y'1 - B y1

P.S. Le tue equazioni implicano un semplice ridimensionamento / traduzione da una mappa all'altra. Se siete preoccupati per utilizzando diversi proiezioni dal mondo per piano, le equazioni sarà più complicato.

Altri suggerimenti

Per ottenere il risultato più robusto contro imprecisioni più che due punti possono aiutare. In questo caso, se solo supporre spostamento e ridimensionamento dei minimi quadrati in forma può aiutare: Wikipedia

Fondamentalmente si minimizza sum ((A xi + B-xi ') ^ 2 + (C yi + D-yi') ^ 2) selezionando ottimale A, B, C, D.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top