All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.osmdroid.mtp.util.Util Maven / Gradle / Ivy

There is a newer version: 6.1.20
Show newest version
// Created by plusminus on 10:15:51 PM - Mar 5, 2009
package org.osmdroid.mtp.util;

import org.osmdroid.mtp.adt.OSMTileInfo;

public class Util {
    // ===========================================================
    // Constants
    // ===========================================================

    // ===========================================================
    // Fields
    // ===========================================================

    // ===========================================================
    // Constructors
    // ===========================================================

    // ===========================================================
    // Getter & Setter
    // ===========================================================

    // ===========================================================
    // Methods from SuperClass/Interfaces
    // ===========================================================

    // ===========================================================
    // Methods
    // ===========================================================

    /**
     * For a description see:
     * see http://wiki.openstreetmap.org/index.php/Slippy_map_tilenames
     * For a code-description see:
     * see http://wiki.openstreetmap.org/index.php/Slippy_map_tilenames#compute_bounding_box_for_tile_number
     *
     * @param aLat latitude to get the {@link OSMTileInfo} for.
     * @param aLon longitude to get the {@link OSMTileInfo} for.
     * @return The {@link OSMTileInfo} providing 'x' 'y' and 'z'(oom) for the coordinates passed.
     */
    public static OSMTileInfo getMapTileFromCoordinates(final double aLat, final double aLon, final int zoom) {
        final int y = (int) Math.floor((1 - Math.log(Math.tan(aLat * Math.PI / 180) + 1 / Math.cos(aLat * Math.PI / 180)) / Math.PI) / 2 * (1 << zoom));
        final int x = (int) Math.floor((aLon + 180) / 360 * (1 << zoom));

        return new OSMTileInfo(x, y, zoom);
    }

    // ===========================================================
    // Inner and Anonymous Classes
    // ===========================================================
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy