コード例 #1
0
ファイル: Proj4phpTest.php プロジェクト: rldhont/proj4php
 public function testProjFour()
 {
     $proj4 = new Proj4php();
     $projL93 = new Proj('EPSG:2154', $proj4);
     $projWGS84 = new Proj('EPSG:4326', $proj4);
     $projLI = new Proj('EPSG:27571', $proj4);
     $projLSud = new Proj('EPSG:27563', $proj4);
     $projLSeventyTwo = new Proj('EPSG:31370', $proj4);
     $pointSrc = new Point('652709.401', '6859290.946');
     $this->assertEquals('652709.401 6859290.946', $pointSrc->toShortString());
     $pointDest = $proj4->transform($projL93, $projWGS84, $pointSrc);
     $this->assertEquals(2.3557811127971, $pointDest->x, '', 0.1);
     $this->assertEquals(48.831938054369, $pointDest->y, '', 0.1);
     $pointDest = $proj4->transform($projWGS84, $projLSeventyTwo, $pointSrc);
     $this->assertEquals(2179.4161950587, $pointDest->x, '', 20);
     $this->assertEquals(-51404.5530669, $pointDest->y, '', 20);
     $this->assertEquals(2354.4969810662, $pointDest->x, '', 300);
     $this->assertEquals(-51359.251012595, $pointDest->y, '', 300);
     $pointDest = $proj4->transform($projLSeventyTwo, $projWGS84, $pointSrc);
     $this->assertEquals(2.3557811002407, $pointDest->x, '', 0.1);
     $this->assertEquals(48.831938050542, $pointDest->y, '', 0.1);
     $this->assertEquals(2.3557811127971, $pointDest->x, '', 0.1);
     $this->assertEquals(48.831938054369, $pointDest->y, '', 0.1);
     $pointDest = $proj4->transform($projWGS84, $projLSud, $pointSrc);
     $this->assertEquals(601419.93654252, $pointDest->x, '', 0.1);
     $this->assertEquals(726554.08650133, $pointDest->y, '', 0.1);
     $this->assertEquals(601419.93647681, $pointDest->x, '', 0.1);
     $this->assertEquals(726554.08650133, $pointDest->y, '', 0.1);
     $pointDest = $proj4->transform($projLSud, $projWGS84, $pointSrc);
     $this->assertEquals(2.3557810993491, $pointDest->x, '', 0.1);
     $this->assertEquals(48.831938051718, $pointDest->y, '', 0.1);
     $this->assertEquals(2.3557811002407, $pointDest->x, '', 0.1);
     $this->assertEquals(48.831938050527, $pointDest->y, '', 0.1);
     $pointDest = $proj4->transform($projWGS84, $projLI, $pointSrc);
     $this->assertEquals(601415.06988072, $pointDest->x, '', 0.1);
     $this->assertEquals(1125718.0309796, $pointDest->y, '', 0.1);
     $this->assertEquals(601415.06994621, $pointDest->x, '', 0.1);
     $this->assertEquals(1125718.0308472, $pointDest->y, '', 0.1);
     $pointDest = $proj4->transform($projLI, $projL93, $pointSrc);
     $this->assertEquals(652709.4000756301, $pointDest->x, '', 0.1);
     $this->assertEquals(6859290.9456811, $pointDest->y, '', 0.1);
     $this->assertEquals(652709.4000112599, $pointDest->x, '', 0.1);
     $this->assertEquals(6859290.9458141, $pointDest->y, '', 0.1);
 }
コード例 #2
0
ファイル: Lcc.php プロジェクト: rldhont/proj4php
 public function forward(Point $p)
 {
     list($lon, $lat) = $p->toArray();
     // convert to radians
     if ($lat <= 90.0 && $lat >= -90.0 && $lon <= 180.0 && $lon >= -180.0) {
         //lon = lon * Common::D2R;
         //lat = lat * Common::D2R;
     } else {
         Proj4php::reportError('lcc:forward: llInputOutOfRange: ' . $lon . ' : ' . $lat);
         return;
     }
     $con = abs(abs($lat) - Common::HALF_PI);
     if ($con > Common::EPSLN) {
         $ts = Common::tsfnz($this->e, $lat, sin($lat));
         $rh1 = $this->a * $this->f0 * pow($ts, $this->ns);
     } else {
         $con = $lat * $this->ns;
         if ($con <= 0) {
             Proj4php::reportError('lcc:forward: No Projection');
             return;
         }
         $rh1 = 0;
     }
     $theta = $this->ns * Common::adjust_lon($lon - $this->long0);
     $p->x = $this->k0 * ($rh1 * sin($theta)) + $this->x0;
     $p->y = $this->k0 * ($this->rh - $rh1 * cos($theta)) + $this->y0;
     return $p;
 }
コード例 #3
0
ファイル: index.php プロジェクト: scada-josh/rmr
/**
 *
 * @apiName TransformToLatLng
 * @apiGroup TEST Manager
 * @apiVersion 0.1.0
 *
 * @api {post} /testManager/transformToLatLng Test Transform To LatLng
 * @apiDescription คำอธิบาย : ทดสอบแปลงค่าพิกัดใน WLMA 1.0 ให้เป็น LatLng
 *
 *
 * @apiParam {String} name     New name of the user
 *
 * @apiSampleRequest /testManager/getMsg/:name
 *
 * @apiSuccess {String} msg แสดงข้อความทักทายผู้ใช้งาน
 *
 * @apiSuccessExample Example data on success:
 * {
 *   "msg": "Hello, anusorn"
 * }
 *
 * @apiError UserNotFound The <code>id</code> of the User was not found.
 * @apiErrorExample {json} Error-Response:
 *     HTTP/1.1 404 Not Found
 *     {
 *       "error": "UserNotFound"
 *     }
 *
 */
function transformToLatLng($app, $proj4)
{
    // J5812R00001 673510.9375, 1524469.5
    // J5812R00002 674006.5625, 1527902.5
    // J5812R00003 671971.0625, 1527002.625
    // J5812R00004 679441.5, 1529612.25
    // J5812R00005 673989.1875, 1527974.25
    // J5812R00006 672802.1875, 1525371.75
    // then Create your projections
    $proj32647 = new Proj('EPSG:32647', $proj4);
    $proj24047 = new Proj('EPSG:24047', $proj4);
    $projWGS84 = new Proj('EPSG:4326', $proj4);
    // Create a point.
    $pointSrc = new Point(674006.5625, 1527902.5, $proj32647);
    $tmpPointSrc = $pointSrc->toShortString();
    // echo "Source: " . $pointSrc->toShortString() . " in L93 <br>";
    // Transform the point between datums.
    $pointDest = $proj4->transform($projWGS84, $pointSrc);
    $tmpPointDesc = $pointDest->toShortString();
    // echo "Conversion: " . $pointDest->toShortString() . " in WGS84<br><br>";
    // // Create two different projections.
    // $projL93    = new Proj('EPSG:2154', $proj4);
    // $projWGS84  = new Proj('EPSG:4326', $proj4);
    // // Create a point.
    // $pointSrc = new Point(652709.401, 6859290.946, $projL93);
    // $tmpPointSrc = $pointSrc->toShortString();
    // // echo "Source: " . $pointSrc->toShortString() . " in L93 <br>";
    // // Transform the point between datums.
    // $pointDest = $proj4->transform($projWGS84, $pointSrc);
    // $tmpPointDesc = $pointDest->toShortString();
    // // echo "Conversion: " . $pointDest->toShortString() . " in WGS84<br><br>";
    $return_m = array("msg" => "ทดสอบแปลงค่าพิกัดจาก UTM (32647 หรือ 24047) เป็น LatLng", "pointSrc" => $tmpPointSrc, "pointDest" => $tmpPointDesc);
    $app->response()->header("Content-Type", "application/json");
    echo json_encode($return_m);
}
コード例 #4
0
ファイル: testproj.php プロジェクト: gillg/proj4php
echo "Source : " . $pointSrc->toShortString() . " in LI<br>";
$pointDest = $proj4->transform($projLI, $projL93, $pointSrc);
echo "Conversion : " . $pointDest->toShortString() . " in L93<br><br>";
$pointSrc = new Point('177329.253543', '58176.702191');
echo "Source : " . $pointSrc->toShortString() . " in Lambert 1972<br>";
$pointDest = $proj4->transform($projL72, $projWGS84, $pointSrc);
echo "Conversion : " . $pointDest->toShortString() . " in WGS84<br><br>";
$pointSrc = $pointDest;
echo "Source : " . $pointSrc->toShortString() . " in WGS84<br>";
$pointDest = $proj4->transform($projWGS84, $projL72, $pointSrc);
echo "Conversion : " . $pointDest->toShortString() . " in Lambert 1972<br><br>";
$pointSrc = $pointDest;
echo "Source : " . $pointSrc->toShortString() . " in Lambert 1972<br>";
$pointDest = $proj4->transform($projL72, $proj25833, $pointSrc);
echo "Conversion : " . $pointDest->toShortString() . " in EPSG:25833<br><br>";
$pointSrc = $pointDest;
echo "Source : " . $pointSrc->toShortString() . " in EPSG:25833<br>";
$pointDest = $proj4->transform($proj25833, $projWGS84, $pointSrc);
echo "Conversion : " . $pointDest->toShortString() . " in WGS84<br><br>";
$pointSrc = $pointDest;
echo "Source : " . $pointSrc->toShortString() . " in WGS84<br>";
$pointDest = $proj4->transform($projWGS84, $proj31468, $pointSrc);
echo "Conversion : " . $pointDest->toShortString() . " in EPSG:31468<br><br>";
$pointSrc = new Point('-868208.53', '-1095793.57');
echo "Source : " . $pointSrc->toShortString() . " in S-JTSK<br>";
$pointDest = $proj4->transform($proj5514, $projWGS84, $pointSrc);
echo "Conversion : " . $pointDest->toShortString() . " in WGS84<br><br>";
$pointSrc = $pointDest;
echo "Source : " . $pointSrc->toShortString() . " in WGS84<br>";
$pointDest = $proj4->transform($projWGS84, $proj5514, $pointSrc);
echo "Conversion : " . $pointDest->toShortString() . " in S-JTSK<br><br>";
コード例 #5
0
ファイル: testproj.php プロジェクト: rldhont/proj4php
$pointSrc = $pointDest;
echo "Source : " . $pointSrc->toShortString() . " in WGS84<br>";
$pointDest = $proj4->transform($projWGS84, $proj31468, $pointSrc);
echo "Conversion : " . $pointDest->toShortString() . " in EPSG:31468<br><br>";
$pointSrc = new Point('-868208.53', '-1095793.57');
echo "Source : " . $pointSrc->toShortString() . " in S-JTSK<br>";
$pointDest = $proj4->transform($proj5514, $projWGS84, $pointSrc);
echo "Conversion : " . $pointDest->toShortString() . " in WGS84<br><br>";
$pointSrc = $pointDest;
echo "Source : " . $pointSrc->toShortString() . " in WGS84<br>";
$pointDest = $proj4->transform($projWGS84, $proj5514, $pointSrc);
echo "Conversion : " . $pointDest->toShortString() . " in S-JTSK<br><br>";
$proj4->addDef("EPSG:27700", '+proj=tmerc +lat_0=49 +lon_0=-2 +k=0.9996012717 +x_0=400000 +y_0=-100000 +ellps=airy +datum=OSGB36 +units=m +no_defs');
$projOSGB36 = new Proj('EPSG:27700', $proj4);
$pointSrc = new Point(671196.3657, 1230275.0454, $projOSGB36);
echo "Source : " . $pointSrc->toShortString() . " in OSGB36<br>";
$pointDest = $proj4->transform($projWGS84, $pointSrc);
echo "Conversion : " . $pointDest->toShortString() . " in WGS84<br><br>";
$pointSrc = $pointDest;
echo "Source : " . $pointSrc->toShortString() . " in WGS84<br>";
$pointDest = $proj4->transform($projOSGB36, $pointSrc);
echo "Conversion : " . $pointDest->toShortString() . " in OSGB36<br><br>";
$projOSGB36_2 = new Proj('PROJCS["OSGB 1936 / British National Grid",GEOGCS["OSGB 1936",DATUM["OSGB_1936",SPHEROID["Airy 1830",6377563.396,299.3249646,AUTHORITY["EPSG","7001"]],AUTHORITY["EPSG","6277"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4277"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",49],PARAMETER["central_meridian",-2],PARAMETER["scale_factor",0.9996012717],PARAMETER["false_easting",400000],PARAMETER["false_northing",-100000],AUTHORITY["EPSG","27700"],AXIS["Easting",EAST],AXIS["Northing",NORTH]]', $proj4);
$pointSrc = new Point(671196.3657, 1230275.0454, $projOSGB36_2);
echo "Source : " . $pointSrc->toShortString() . " in OSGB36 from OGC WKT<br>";
$pointDest = $proj4->transform($projWGS84, $pointSrc);
echo "Conversion : " . $pointDest->toShortString() . " in WGS84<br><br>";
$pointSrc = $pointDest;
echo "Source : " . $pointSrc->toShortString() . " in WGS84<br>";
$pointDest = $proj4->transform($projOSGB36_2, $pointSrc);
echo "Conversion : " . $pointDest->toShortString() . " in OSGB36 from OGC WKT<br><br>";