itinance/tinygeo

There is no license information available for the latest version (v0.2) of this package.

v0.2 2014-09-23 15:21 UTC

This package is not auto-updated.

Last update: 2024-04-27 15:53:03 UTC


README

Provides classes for geographic calculations and related data structures.

Installation using composer:

    "repositories": [
        {
            "type": "git",
            "url": "git@github.com:itinance/tinygeo.git"
        }
    ],
    "require": {
        "itinance/tinygeo": "dev-master"
    },

Usage examples:

$p1 = new GeoPoint("48°07'31.5''", "011°32'23''");
echo $p1->lat . ', ' . $p1->lng;
$p1 = new GeoPoint(48.346611, 11.578393);
echo $p1->getStringAsDegreeMinuteSecond()
$d = new GeoDegree(16, 19, 28.29);
$this->assertEquals(16.324525, $d->toDecimals());
$d = GeoDegree::fromString("48°08'10''");
$this->assertEquals( 48, $d->degrees );
$this->assertEquals( 8, $d->minutes );
$this->assertEquals( 10, $d->seconds);
$p1 = new GeoPoint(48.135993, 11.539721);
$destination = GeoCalculation::movePointUpwards($p1, 1.200);
$center = new GeoPoint(48.135993, 11.539721);

$box = GeoCalculation::getBoundingBox($center, 0.7); // 700m
$this->assertEquals( new GeoPoint( 48.1404443, 11.54637187 ),  $box->getNorthEast(), '', 0.001 );
$this->assertEquals( new GeoPoint( 48.1404443, 11.53307013 ),  $box->getNorthWest(), '', 0.001 );
$this->assertEquals( new GeoPoint( 48.13154, 11.53307013 ),  $box->getSouthWest(), '', 0.001 );
$this->assertEquals( new GeoPoint( 48.13154, 11.54637187 ),  $box->getSouthEast(), '', 0.001 );