Maison > Java > javaDidacticiel > Comment convertir la latitude et la longitude en coordonnées de pixels de projection Mercator ?

Comment convertir la latitude et la longitude en coordonnées de pixels de projection Mercator ?

Mary-Kate Olsen
Libérer: 2024-11-07 15:18:02
original
316 Les gens l'ont consulté

How to Convert Latitude and Longitude to Mercator Projection Pixel Coordinates?

Conversion de la latitude et de la longitude en coordonnées de pixels de projection Mercator

Pour afficher les coordonnées géographiques sur une image de projection Mercator, il est nécessaire de convertir la latitude et la longitude valeurs en coordonnées de pixels correspondantes.

Propriétés de la projection Mercator

La projection Mercator est une projection cartographique conforme qui préserve les angles entre les lignes qui se croisent. Les latitudes sont représentées par des lignes droites horizontales, tandis que les longitudes sont représentées par des lignes droites verticales.

Formules de conversion

Pour dériver les coordonnées Est (x) et Nord (y) de latitude et longitude, les formules suivantes peuvent être utilisées :

E = R * (λ - λₒ)
N = R * ln[tan(π/4 + φ/2)]
Copier après la connexion

où :

  • R est le rayon de la Terre (supposé sphérique pour plus de simplicité)
  • λ est la longitude (la longitude d'origine naturelle est généralement fixée à 0°)
  • λₒ est la longitude du méridien central
  • φ est la latitude

Simplification les formules pour la projection sphérique de Mercator :

x = R * λ
y = R * ln[tan((π/4) + (φ/2))]
Copier après la connexion

Implémentation du code

Voici un exemple en Python qui effectue la conversion :

import math

earth_radius = 6371000 # in meters

def mercator_projection(latitude, longitude, map_width, map_height):
    """Converts latitude and longitude to Mercator projection pixel coordinates.

    Args:
        latitude (float): Latitude in degrees.
        longitude (float): Longitude in degrees.
        map_width (float): Width of the map image in pixels.
        map_height (float): Height of the map image in pixels.

    Returns:
        tuple: A tuple containing the x and y pixel coordinates.
    """

    # Convert latitude and longitude to radians
    latitude_radians = math.radians(latitude)
    longitude_radians = math.radians(longitude)

    # Calculate x and y pixel coordinates
    x = (longitude_radians + math.pi) * (map_width / (2 * math.pi))
    y = (map_height / 2) - (map_height * math.log(math.tan((math.pi / 4) + (latitude_radians / 2))) / (2 * math.pi))

    return x, y
Copier après la connexion

Exemple d'utilisation

map_width = 991
map_height = 768

latitude = 58.07
longitude = -5.93

x, y = mercator_projection(latitude, longitude, map_width, map_height)

print(f"x: {x}, y: {y}")
Copier après la connexion

Cela affichera les coordonnées en pixels sur l'image de projection Mercator pour la latitude et la longitude spécifiées.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal