PHP座標系統轉換

2021-10-06 07:33:51 字數 2470 閱讀 3322

<?php

// **根據網際網路**修改

class coordinatetransformutil

/***

* @param lng wgs84座標系的經度

* @param lat wgs84座標系的緯度

*/public static function wgs84tobd09($lng, $lat)

/***

* @param lng 火星座標經度

* @param lat 火星座標緯度

*/public static function gcj02tobd09($lng, $lat)

/***

* @return 火星座標陣列

*/public static function bd09togcj02($bd_lng, $bd_lat)

/*** wgs84轉gcj02(火星座標系)

** @param lng wgs84座標系的經度

* @param lat wgs84座標系的緯度

* @return 火星座標陣列

*/public static function wgs84togcj02($lng, $lat)

$dlat = static::transformlat($lng - 105.0, $lat - 35.0);

$dlng = static::transformlng($lng - 105.0, $lat - 35.0);

$radlat = $lat / 180.0 * static::$pi;

$magic = sin($radlat);

$magic = 1-static::$ee * $magic * $magic;

$sqrtmagic = sqrt($magic);

$dlat = ($dlat * 180.0) / ((static::$a * (1-static::$ee)) / ($magic * $sqrtmagic) * static::$pi);

$dlng = ($dlng * 180.0) / (static::$a / $sqrtmagic * cos($radlat) * static::$pi);

$mglat = $lat + $dlat;

$mglng = $lng + $dlng;

return [$mglng, $mglat];

}/**

* gcj02(火星座標系)轉gps84

** @param lng 火星座標系的經度

* @param lat 火星座標系緯度

* @return wgs84座標陣列

*/public static function gcj02towgs84($lng, $lat)

$dlat = static::transformlat($lng - 105.0, $lat - 35.0);

$dlng = static::transformlng($lng - 105.0, $lat - 35.0);

$radlat = $lat / 180.0 * static::$pi;

$magic = sin($radlat);

$magic = 1-static::$ee * $magic * $magic;

$sqrtmagic = sqrt($magic);

$dlat = ($dlat * 180.0) / ((static::$a * (1-static::$ee)) / ($magic * $sqrtmagic) * static::$pi);

$dlng = ($dlng * 180.0) / (static::$a / $sqrtmagic * cos($radlat) * static::$pi);

$mglat = $lat + $dlat;

$mglng = $lng + $dlng;

return [$lng * 2 - $mglng, $lat * 2 - $mglat];

}/**

* 緯度轉換

** @param lng

* @param lat

* @return

*/public static function transformlat($lng, $lat)

/*** 經度轉換

** @param lng

* @param lat

* @return

*/public static function transformlng($lng, $lat)

/*** 判斷是否在國內,不在國內不做偏移

** @param lng

* @param lat

* @return

*/public static function out_of_china($lng, $lat)

else if ($lat < 0.8293 || $lat > 55.8271)

return false;

}}

php 火星座標 百度座標轉換 地球座標轉換

型別 說明使用者 wgs84 美國gps 國際通用,如谷歌國外地圖 osm地圖 火星系gcj 02 國測局制定的標準,國內地圖必須至少使用此對位置進行首次加密 bg 09 共有兩個類,coordinate和coordinatetool。coordinate,座標點物件 class coordinat...

Flex座標系統及轉換

flash和flex針對不同的目的,提供了3種不同的座標系 全域性的就是 stage級別的 本地座標系 元件級別的 內容座標系 相對於本地座標系說的 這些座標系的點是可以轉換的,並且有相應的方法,看來adobe想得挺周到。我們乙個乙個的說一下 全域性這個座標系的原點在整個flash舞台的左上角,mo...

Flex座標系統及轉換

flash和flex針對不同的目的,提供了3種不同的座標系 全域性的就是 stage級別的 全域性舞台的座標,不隨當前當滑鼠所在容器的變化而變化 本地座標系 元件級別的 隨控制項不是定是容器的變化而座標系變化,顯示的是當前構件內的座標 內容座標系 相對於本地座標系說的 這些座標系的點是可以轉換的,並...