PHP GPS biçimi

2 Cevap php

nasıl 21.448850 biçimi +52 ° 35 '37.68 ", +21 ° 26' 55.86" gibi google yok, biçimi 52,593800 PHP yapılmış http://maps.google.pl/maps?hl=pl&t=m&q=52.593800,21.448850?

2 Cevap

Source

<?php

function DMStoDEC($deg,$min,$sec)
{

// Converts DMS ( Degrees / minutes / seconds ) 
// to decimal format longitude / latitude

    return $deg+((($min*60)+($sec))/3600);
}    

function DECtoDMS($dec)
{

// Converts decimal longitude / latitude to DMS
// ( Degrees / minutes / seconds ) 

// This is the piece of code which may appear to 
// be inefficient, but to avoid issues with floating
// point math we extract the integer part and the float
// part by using a string function.

    $vars = explode(".",$dec);
    $deg = $vars[0];
    $tempma = "0.".$vars[1];

    $tempma = $tempma * 3600;
    $min = floor($tempma / 60);
    $sec = $tempma - ($min*60);

    return array("deg"=>$deg,"min"=>$min,"sec"=>$sec);
}   

İstenilen dize dizisini değiştirmek için önemsiz olmalıdır.

Düz dan Wikipedia:

Bir ondalık boyuna gibi -87,728055 gibi koordinat verilen DMS formuna dönüştürmek için saçmadır. Bu tamamen dönüştürmek amacıyla bir koordinat enine ya da boyuna olup olmadığını bilmek için gerekli olacaktır. Aşağıdaki gibi bir yöntemdir:

  • Kesir kısmını bırakarak, koordinat tam sayı kısmını çıkarın. Tam sayı derece sayısıdır. 87.728055 = 87 derece.
  • 60'a kalan kesirli kısmını çarpın. Bu tam sayı kısmında dakika sayıda üretecek. 0.728055 x 60 = 43,6833 = 43. dakika.
  • Saniyelik bir dizi üreten, 60 dakika ile sayısının kesirli kısmını çarpın. 0.6833 x 60 = 40.998 = 41 saniye. Bu 41'e o yuvarlak, ondalık kesiliyor, 40 saniye olarak saymak veya numaranın tamamını tutmak mümkündür.
  • Kaynak sayı koordinat uzunlamasına, enine ya da oldu, ve numarası işareti, N / S / E / W belirteci ilave edilip bağlı. Aşağıdaki tabloda, olasılıkları göstermektedir:
  Type   Dir.   Sign    Test
  Lat.   N      +       > 0
  Lat.   S      -       < 0
  Long.  E      +       > 0
  Long.  W      -       < 0

A 0 ° 0'0 at ile koordine "enlem veya boylam Kuzey ne Güney, Doğu ne Batı ne olduğunu. Basitçe sıfır enlem veya sıfır boylam.

Nihai sonuç: W 87 ° 43'41 ".