Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/287.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP-将纬度和经度转换为x和y坐标,无需使用任何库_Php_Google Maps_Map_Geolocation_Latitude Longitude - Fatal编程技术网

PHP-将纬度和经度转换为x和y坐标,无需使用任何库

PHP-将纬度和经度转换为x和y坐标,无需使用任何库,php,google-maps,map,geolocation,latitude-longitude,Php,Google Maps,Map,Geolocation,Latitude Longitude,这个问题已经被问过很多次了,但是我想要的答案可以在php应用程序中使用 我找到的最接近的答案是 int x = (int) ((MAP_WIDTH/360.0) * (180 + lon)); int y = (int) ((MAP_HEIGHT/180.0) * (90 - lat)); 我不需要出示地图什么的。我只需要计算一下 如果我使用上面的公式,地图的宽度和高度应该是多少?地球上没有x和y坐标。最多可以计算x、y和z。请注意,欧几里德距离将穿过地球表面 很明显,任何基于x-y的系统

这个问题已经被问过很多次了,但是我想要的答案可以在php应用程序中使用

我找到的最接近的答案是

int x =  (int) ((MAP_WIDTH/360.0) * (180 + lon));
int y =  (int) ((MAP_HEIGHT/180.0) * (90 - lat));
我不需要出示地图什么的。我只需要计算一下


如果我使用上面的公式,地图的宽度和高度应该是多少?

地球上没有
x
y
坐标。最多可以计算
x
y
z
。请注意,欧几里德距离将穿过地球表面

很明显,任何基于
x-y
的系统都会产生接近极点和接近日期线的完全不准确的结果

保持数据的原样-纬度、经度(和高度,如果有的话)-使用大圆距离而不是计算欧几里得距离。除非你有关于地球实际形状的详细信息,否则你最好用一个球体来近似普通的大圆。而且实际上很容易使用


您希望实现什么目标?地球没有“自然”坐标。X和Y通常用于投影地图,但你刚才说你不想要地图……谁能解释一下标记为负数的原因吗?因为我有一个程序,用X,Y坐标遍历地图,然后告诉附近的城市。如果你计算任意投影的
X
Y
,欧几里德距离,您的结果将不正确…谢谢您的回答@Anony Mouse。所以现在我需要用lat-long找到附近的城市。