{"id":33,"date":"2010-12-09T19:09:27","date_gmt":"2010-12-09T18:09:27","guid":{"rendered":"http:\/\/luca.lovalvo.net\/1_luca_lo_valvo\/archive\/9244_convertir_une_coordonne_gps_en_norme_nmea_ddmmmmmm_en_wgs1984_dd.html"},"modified":"2022-11-04T15:57:21","modified_gmt":"2022-11-04T14:57:21","slug":"convertir-une-coordonnee-gps-en-norme-nmea-ddmm-mmmm-en-wgs1984-dd","status":"publish","type":"post","link":"https:\/\/luca.lovalvo.ch\/blog\/convertir-une-coordonnee-gps-en-norme-nmea-ddmm-mmmm-en-wgs1984-dd\/","title":{"rendered":"Convertir une coordonn\u00e9e GPS en norme NMEA (DDMM.MMMM) en WGS1984 (DD)"},"content":{"rendered":"<p>La plupart des &eacute;quipements de navigations transmettent les informations et coordoon&eacute;es GPS &agrave; l&#39;aide d&#39;une trame&nbsp;<a href=\"http:\/\/fr.wikipedia.org\/wiki\/NMEA\" target=\"_blank\" rel=\"noopener\">NMEA<\/a>.<\/p>\n<p>Ce qui a pour cons&eacute;quence, de transmettre les valeurs de <font color=\"#0000FF\">Latitude <\/font>et de <font color=\"#0000FF\">Longitude<\/font> dans le format DDMM.MMMM (degr&eacute;s,minutes.d&eacute;cimales de minutes).<\/p>\n<p>Malheureusement, ce format, n&#39;est pas support&eacute; par Google Map, nous obligeant de convertir les valeurs en des donn&eacute;es &quot;GPS&quot; au format&nbsp;<a href=\"http:\/\/fr.wikipedia.org\/wiki\/WGS_84\" target=\"_blank\" rel=\"noopener\">WG84<\/a>&nbsp;(DD Degr&eacute; d&eacute;cimal).<\/p>\n<p>Voici une petite fonction PHP de conversion NMEA en GPS(WG84) (DDMM.MMM to DD), pas propre qui permet de le faire \ud83d\ude09<\/p>\n<p>Hey oui, fatigue oblige, j&#39;ai cod&eacute; comme un porc \ud83d\ude2e<\/p>\n<p>&nbsp;<\/p>\n<p><font color=\"#0000FF\">Function convertNMEAtoGPS($data,$dir)<span class=\"Apple-tab-span\" style=\"white-space: pre\">\t<\/span>{<span class=\"Apple-tab-span\" style=\"white-space: pre\">\t<\/span><\/font><\/p>\n<p><font color=\"#0000FF\"><span class=\"Apple-tab-span\" style=\"white-space: pre\">\t\t<\/span>\/\/conversion du format NMEA au format GPS<\/font><\/p>\n<p><font color=\"#0000FF\"><span class=\"Apple-tab-span\" style=\"white-space: pre\">\t\t<\/span>$ddmm_mmmm=&quot;$data&quot;;<\/font><\/p>\n<p><font color=\"#0000FF\"><span class=\"Apple-tab-span\" style=\"white-space: pre\">\t\t<\/span>$ddmm_mmmm=str_replace(&quot;.&quot;,&quot;;&quot;,$ddmm_mmmm);<\/p>\n<p><\/font><\/p>\n<p><font color=\"#0000FF\"><span class=\"Apple-tab-span\" style=\"white-space: pre\">\t\t<\/span>$ddmm_mmmm=split(&quot;;&quot;,$ddmm_mmmm);<\/font><\/p>\n<p><font color=\"#0000FF\"><span class=\"Apple-tab-span\" style=\"white-space: pre\">\t\t<\/span>$dd=substr($ddmm_mmmm[0], 0, -2);<\/font><\/p>\n<p><font color=\"#0000FF\"><span class=\"Apple-tab-span\" style=\"white-space: pre\">\t\t<\/span>$mm=substr($ddmm_mmmm[0], 2);<\/font><\/p>\n<p><font color=\"#0000FF\"><span class=\"Apple-tab-span\" style=\"white-space: pre\">\t\t<\/span>$mm_mmmm=&quot;$mm.$ddmm_mmmm[1]&quot;;<\/font><\/p>\n<p><font color=\"#0000FF\"><span class=\"Apple-tab-span\" style=\"white-space: pre\">\t\t<\/span>$mmdivided=$mm_mmmm\/60;<\/font><\/p>\n<p><font color=\"#0000FF\"><span class=\"Apple-tab-span\" style=\"white-space: pre\">\t\t<\/span>$coo=$dd+$mmdivided;<\/font><\/p>\n<p><font color=\"#0000FF\"><span class=\"Apple-tab-span\" style=\"white-space: pre\">\t\t<\/span>\/\/on v&eacute;rifie la direction<br \/><span class=\"Apple-tab-span\" style=\"white-space: pre\">\t\t<\/span>$dir=strtolower($dir);<\/font><\/p>\n<p><font color=\"#0000FF\"><span class=\"Apple-tab-span\" style=\"white-space: pre\">\t\t<\/span>if($dir==&quot;s&quot; OR $dir==&quot;w&quot;)<\/font><\/p>\n<p><font color=\"#0000FF\"><span class=\"Apple-tab-span\" style=\"white-space: pre\">\t\t\t<\/span>{<br \/><span class=\"Apple-tab-span\" style=\"white-space: pre\">\t\t\t\t<\/span>$coo=$coo*(-1);<\/font><\/p>\n<p><font color=\"#0000FF\"><span class=\"Apple-tab-span\" style=\"white-space: pre\">\t\t\t<\/span>}<\/font><\/p>\n<p><font color=\"#0000FF\"><span class=\"Apple-tab-span\" style=\"white-space: pre\">\t<\/span>return $coo;<br \/>}<\/font><\/p>\n<p>&nbsp;<\/p>\n<p><strong>Utilisation :<\/strong><br \/><font color=\"#339966\">$latitude=&quot;4622.95493&quot;;<br \/>$direction=&quot;N&quot;;<\/font><br \/><font color=\"#0000FF\">Echo convertNMEAtoGPS($latitude,$direction);<\/font><\/p>\n<p><strong>Explication :<\/strong><br \/>La formule est simple :<br \/>Il faut s&eacute;parer la valeur &quot;DD&quot; (Degr&eacute;) de la partie &quot;temps&quot; (MM.MMM).<br \/>Puis diviser la partie temps (MM.MMMM) par 60 (le nombre de seconde dans une minute).<br \/>Et enfin additionner le r&eacute;sultat &agrave; la valeur &quot;DD&quot;.<\/p>\n<p>Si la valeur de la direction est &quot;<font color=\"#99CC00\">S<\/font>&quot; ou &quot;<font color=\"#99CC00\">W<\/font>&quot; (Sud ou Ouest) on multiplie le r&eacute;sultat par <font color=\"#99CC00\">-1<\/font>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>La plupart des &eacute;quipements de navigations transmettent les informations et coordoon&eacute;es GPS &agrave; l&#39;aide d&#39;une trame&nbsp;NMEA. Ce qui a pour cons&eacute;quence, de transmettre les valeurs de Latitude et de Longitude dans le format DDMM.MMMM (degr&eacute;s,minutes.d&eacute;cimales de minutes). Malheureusement, ce format, n&#39;est pas support&eacute; par Google Map, nous obligeant de convertir les valeurs en des donn&eacute;es [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[8],"tags":[],"class_list":["post-33","post","type-post","status-publish","format-standard","hentry","category-programmation"],"_links":{"self":[{"href":"https:\/\/luca.lovalvo.ch\/blog\/wp-json\/wp\/v2\/posts\/33","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/luca.lovalvo.ch\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/luca.lovalvo.ch\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/luca.lovalvo.ch\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/luca.lovalvo.ch\/blog\/wp-json\/wp\/v2\/comments?post=33"}],"version-history":[{"count":1,"href":"https:\/\/luca.lovalvo.ch\/blog\/wp-json\/wp\/v2\/posts\/33\/revisions"}],"predecessor-version":[{"id":241,"href":"https:\/\/luca.lovalvo.ch\/blog\/wp-json\/wp\/v2\/posts\/33\/revisions\/241"}],"wp:attachment":[{"href":"https:\/\/luca.lovalvo.ch\/blog\/wp-json\/wp\/v2\/media?parent=33"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/luca.lovalvo.ch\/blog\/wp-json\/wp\/v2\/categories?post=33"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/luca.lovalvo.ch\/blog\/wp-json\/wp\/v2\/tags?post=33"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}