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); }
/** * * @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); }
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>";
$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>";