Home > Java > javaTutorial > body text

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

Mary-Kate Olsen
Release: 2024-11-07 15:18:02
Original
248 people have browsed it

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)]
Copy after login

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))]
Copy after login

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
Copy after login

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}")
Copy after login

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!

source:php.cn
Statement of this Website
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
Latest Articles by Author
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
About us Disclaimer Sitemap
php.cn:Public welfare online PHP training,Help PHP learners grow quickly!