Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/112.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/neo4j/3.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
Ios 使用谷歌地图计算x和y距离,而不是两个位置之间的位移_Ios_Google Maps Api 3_Maps - Fatal编程技术网

Ios 使用谷歌地图计算x和y距离,而不是两个位置之间的位移

Ios 使用谷歌地图计算x和y距离,而不是两个位置之间的位移,ios,google-maps-api-3,maps,Ios,Google Maps Api 3,Maps,我需要使用GoogleMapsAPI来计算这两个地方之间的x和y距离,因为GoogleMaps使用墨卡托投影。我不需要两个地方之间的距离,而是delta x(沿子午线)和delta y(沿平行线)。如果有两个坐标为(x1,y1)和(x2,y2)的地方有lat-longs(lat1,long1)和(lat2,long2),我想计算x2-x1和y2-y1,这两个地方的平方和当然给出了两个地方之间位移的平方。google maps api可以直接返回笛卡尔坐标吗?在gmsproject上有两种方法可以

我需要使用GoogleMapsAPI来计算这两个地方之间的x和y距离,因为GoogleMaps使用墨卡托投影。我不需要两个地方之间的距离,而是delta x(沿子午线)和delta y(沿平行线)。如果有两个坐标为(x1,y1)和(x2,y2)的地方有lat-longs(lat1,long1)和(lat2,long2),我想计算x2-x1和y2-y1,这两个地方的平方和当然给出了两个地方之间位移的平方。google maps api可以直接返回笛卡尔坐标吗?

gmsproject
上有两种方法可以在坐标(经纬度)和点之间进行转换

/** Maps an Earth coordinate to a content coordinate. */
- (CGPoint)pointForCoordinate:(CLLocationCoordinate2D)coordinate;

/** Maps a content coordinate to an Earth coordinate. */
- (CLLocationCoordinate2D)coordinateForPoint:(CGPoint)point;
我不认为有计算点之间距离的方法,但你应该能够使用标准公式


给定WGS84度的两点:

(lon1, lat1),
(lon2, lat2)
要获取三角洲纬度,请执行以下操作:

dLat = lat2- lat1;
longitide也一样

dLon = lon2 - lon1;
现在,增量结果以度为单位

如果您希望结果以米为单位,则必须以x,y为投影坐标

deltaXMeter = x2 - x1;
deltayMeter = y2 - y1;

当x和y是笛卡尔米坐标系中的坐标时。

尝试使用哈弗森公式测量PHP中两个坐标之间的距离

function haversineGreatCircleDistance($latitudeFrom, $longitudeFrom, $latitudeTo, $longitudeTo, $earthRadius = 6371000)
{
  // convert from degrees to radians
  $latFrom = deg2rad($latitudeFrom);
  $lonFrom = deg2rad($longitudeFrom);
  $latTo = deg2rad($latitudeTo);
  $lonTo = deg2rad($longitudeTo);

  $latDelta = $latTo - $latFrom;
  $lonDelta = $lonTo - $lonFrom;

  $angle = 2 * asin(sqrt(pow(sin($latDelta / 2), 2) +
    cos($latFrom) * cos($latTo) * pow(sin($lonDelta / 2), 2)));
  return $angle * $earthRadius;
}

你表达的不准确,你想要三角洲纬度和三角洲经度吗?重新结果是否应以度为单位?
function haversineGreatCircleDistance($latitudeFrom, $longitudeFrom, $latitudeTo, $longitudeTo, $earthRadius = 6371000)
{
  // convert from degrees to radians
  $latFrom = deg2rad($latitudeFrom);
  $lonFrom = deg2rad($longitudeFrom);
  $latTo = deg2rad($latitudeTo);
  $lonTo = deg2rad($longitudeTo);

  $latDelta = $latTo - $latFrom;
  $lonDelta = $lonTo - $lonFrom;

  $angle = 2 * asin(sqrt(pow(sin($latDelta / 2), 2) +
    cos($latFrom) * cos($latTo) * pow(sin($lonDelta / 2), 2)));
  return $angle * $earthRadius;
}