Maison > Article > développement back-end > Code PHP pour le calcul direct et inverse de la longitude et de la latitude BL et des coordonnées cartésiennes XY
Cet article présente principalement le code PHP pour les calculs directs et inverses de longitude et de latitude BL et les coordonnées cartésiennes. Les 54 coordonnées de Pékin sont divisées en zones de 6 degrés. Si vous devez utiliser d'autres coordonnées, vous pouvez modifier les paramètres $_a, $_f.
Convertir la latitude et la longitude en valeur vide
<?php function BLtoXY($latitude, $longitude) { $_a = 6378245.0; $_f = 1.0 / 298.3; $zoneWide = 6; $PI = 3.14159265353846; $iPI = 0.0174532925199433; //3.1415926535898/180.0; //ZoneWide = 6; //6度带宽 $ProjNo = floor($longitude / $zoneWide); $longitude0 = $ProjNo * $zoneWide + $zoneWide / 2; $longitude0 = $longitude0 * $iPI; $latitude0 = 0; $longitude1 = $longitude * $iPI; //经度转换为弧度 $latitude1 = $latitude * $iPI; //纬度转换为弧度 $e2 = 2 * $_f - $_f * $_f; $ee = $e2 * (1.0 - $e2); $NN = $_a / sqrt(1.0 - $e2 * sin($latitude1) * sin($latitude1)); $T = tan($latitude1) * tan($latitude1); $C = $ee * cos($latitude1) * cos($latitude1); $A = ($longitude1 - $longitude0) * cos($latitude1); $M = $_a * ((1 - $e2 / 4 - 3 * $e2 * $e2 / 64 - 5 * $e2 * $e2 * $e2 / 256) * $latitude1 - (3 * $e2 / 8 + 3 * $e2 * $e2 / 32 + 45 * $e2 * $e2 * $e2 / 1024) * sin(2 * $latitude1) + (15 * $e2 * $e2 / 256 + 45 * $e2 * $e2 * $e2 / 1024) * sin(4 * $latitude1) - (35 * $e2 * $e2 * $e2 / 3072) * sin(6 * $latitude1)); $xval = $NN * ($A + (1 - $T + $C) * $A * $A * $A / 6 + (5 - 18 * $T + $T * $T + 72 * $C - 58 * $ee) * $A * $A * $A * $A * $A / 120); $yval = $M + $NN * tan($latitude1) * ($A * $A / 2 + (5 - $T + 9 * $C + 4 * $C * $C) * $A * $A * $A * $A / 24 + (61 - 58 * $T + $T * $T + 600 * $C - 330 * $ee) * $A * $A * $A * $A * $A * $A / 720); $X0 = 1000000 * ($ProjNo + 1) + 500000; $Y0 = 0; $X = round(($xval + $X0) * 100) / 100.0; $Y = round(($yval + $Y0) * 100) / 100.0; return array($X, $Y); } $lng = $_GET["lng"]; $lat = $_GET["lat"]; $XY = BLtoXY($lat, $lng); echo json_encode($XY); ?>PHP utilise la longitude et la latitude entre deux points pour calculer la distance en ligne droite entre les deux points
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!