Pregunta

Tengo las coordenadas geográficas (latidute y longitud) de algunas ciudades y le gustaría obtener la coordenadas x, y por lo que puede trazarlos en un mapa.

El mapa es un standart uno, al igual que http: // www. wordtravels.com/images/map/Spain/Fuerteventura_map.jpg por ejemplo.

He intentado varias me encontré formular, pero ninguno parece que realmente el trabajo :( código javascript simple o rubí sería lo mejor:.)

¿Fue útil?

Solución

Además de las respuestas anteriores, existe la biblioteca proj4js código abierto que realiza transformadas de entre las diversas proyecciones de mapas. se utiliza internamente por OpenLayers para este tipo de cosas, y es compatible con una serie de proyecciones populares y sistemas de coordenadas.

Otros consejos

Hay muchas maneras de abordar este problema con mayor o menor precisión. Sin embargo, todas se reducen a la realización de una proyección que se corresponde con la de su mapa.

Si sabe que su mapa es de la variedad proyección de Mercator, entonces las coordenadas de latitud / longitud sólo pueden ser tratados como X / Y, escalado y traducido adecuadamente. Es decir, se encontraría un hacha sencilla + b + cy d y que haga el trabajo.

Si el mapa no es Mercator-proyección (como probablemente no lo es si se intenta la escala constante, como este parece que lo hace), entonces lo mejor es asumir que es una proyección de "tierra-tangente". (esto funciona bien para las pequeñas masas de tierra). En ese caso, es necesario primer proyecto de la latitud / longitud en un sistema de coordenadas tridimensional.

z=sin(lat)
x=cos(lat)*sin(long)
y=cos(lat)*cos(long)
z puntos

positivas al polo norte. Y Positivo puntos a 0, 0, y positivas puntos x 0 a lat largo 90 (este) y positiva latitud / longitud se encuentran al norte y al este. Por supuesto debe convertir a radianes primeros.

Todo esto supone una Tierra esférica, lo cual no es del todo cierto, pero está lo suficientemente cerca a menos que esté disparando proyectiles de mortero de largo alcance.

De todos modos, una vez que tenga su XYZ, entonces usted necesidad de girar y la escala del mapa. Para girar alrededor del eje Z, solo resta la longitud de base antes de que usted proyecta en tres dimensiones. Hacer esto para centrar el mapa en cero-longitud de matemáticas más fácil.

Una vez que haya hecho esto, usted sólo tiene que girar el globo hacia adelante hasta que el mapa original es cara frontal. Hacer esto con una rotación 2-d en el eje y-z. Usar http://en.wikipedia.org/wiki/Coordinate_rotations_and_reflections la figura esa parte.

Por último, su coordenadas x, z se va a alinear bastante bien con x de su mapa, coordenadas y, para una escala apropiada / traducirse como se describió anteriormente.

Tal vez esto ayuda, he hecho una aplicación para los EE.UU. usando sólo javascript.

demo / código: http://the55.net/_11/sketch/us_map

El uso de la API de Google Maps, se puede fusionar con el jpg en el mapa y colocarlo correctamente.

Este es un ejemplo http://code.google.com/apis/ maps / documentation / javascript / ejemplos / superposición de hideshow.html

y aquí está la página de la API sobre las superposiciones http://code.google.com/apis/maps/documentation/ javascript / overlays.html

No le resultará fácil a menos que esté trabajando en una escala muy pequeña (y cerca del ecuador). de Wikipedia geográfica sistema es un buen comienzo ...

coordenada

El camino más fácil podría ser hacer uso de algo así como mapeo Web y palo con su latitudes y longitudes.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top