【发布时间】:2017-10-03 19:22:01
【问题描述】:
例子
1 8.919280,45.622651
2 8.910296,45.626021
3 8.914084,45.627028
4 8.913913,45.62941
我必须匹配 x,y 不是 x 和 y 的总和,而是 x 和 y 最接近的。 不是最接近 (x+y) 或 ((x1-x)+(y1-y)) 的都是错误的,我需要完美匹配。
8.912680,45.629392
foreach($pair_coordinates as $pair_coordinate)
{
sscanf((string)$pair_coordinate, '%f,%f',$longitude, $latitude);
$data[$move]['lng'] = $longitude;
$data[$move]['lat'] = $latitude;
$data[$move]['longitude'] = ($longitude-$_POST['k_lng']);
$data[$move]['latitude'] = ($latitude-$_POST['k_lat']);
$data[$move]['diff'] = $data[$move]['longitude'] + $data[$move]['latitude'];
$data[$move]['diff'] = abs($data[$move]['diff']);
$sort[$move] = $data[$move]['diff'];
$sort_old[$move] = $data[$move]['diff'];
$data[$move]['zona'] = (string)$placemarker->ExtendedData->Data[2]->value;
$data[$move]['codcom'] = (string)$placemarker->ExtendedData->Data[1]->value;
$data[$move]['markername'] = (string)$placemarker->name;
if($data[$move]['longitude'] < 0 || $data[$move]['latitude'] < 0)
{
unset($sort[$move]);
}
$move++;
}
asort($sort);
【问题讨论】:
-
我们总是乐于帮助和支持新的编码员,但您需要先帮助自己。 :-) 在doing more research 之后,如果您有问题发布您尝试过的方法,并清楚地解释什么不起作用并提供a Minimal, Complete, and Verifiable example。阅读How to Ask 一个好问题。请务必take the tour 并阅读this。
-
like 值对需要与值对数组匹配。
-
您要解决斜边问题吗?
-
是的,我的问题非常棘手,我从过去 9 年开始一直在编码,对于简单的编码人员和简单的解决方案制造商来说,这很难理解。
-
循环槽并计算每个的 squareRoot(abs(X1-X2)^2)+abs(Y1-Y2)^2),最小的将是最接近的
标签: php algorithm sorting coordinates coordinate-systems