Home >Java >javaTutorial >How to Convert Latitude and Longitude to Mercator Projection Pixel Coordinates?

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

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-11-07 15:18:02383browse

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

Converting Latitude and Longitude to Mercator Projection Pixel Coordinates

To display geographical coordinates on a Mercator projection image, it's necessary to convert latitude and longitude values into corresponding pixel coordinates.

Mercator Projection Properties

The Mercator projection is a conformal map projection that preserves the angles between intersecting lines. Latitudes are represented by horizontal straight lines, while longitudes are represented by vertical straight lines.

Conversion Formulas

To derive Easting (x) and Northing (y) coordinates from latitude and longitude, the following formulas can be used:

E = R * (λ - λₒ)
N = R * ln[tan(π/4 + φ/2)]

where:

  • R is the radius of the Earth (assumed spherical for simplicity)
  • λ is the longitude (longitude of natural origin is usually set to 0°)
  • λₒ is the longitude of the central meridian
  • φ is the latitude

Simplifying the formulas for spherical Mercator projection:

x = R * λ
y = R * ln[tan((π/4) + (φ/2))]

Code Implementation

Here's an example in Python that performs the 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

Example Usage

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}")

This will display the pixel coordinates on the Mercator projection image for the specified latitude and longitude.

The above is the detailed content of How to Convert Latitude and Longitude to Mercator Projection Pixel Coordinates?. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn