我正在出租车应用程序,骑车完成后我必须绘制我使用谷歌地图apis的地图。假设我的路点是
array($coordinates1,$coordinates2,$coordinates3,$coordinates4,$coordinates5,$coordinates6,.........,$coordinates40)
问题是google map api最多只接受23个路点,为此我必须跳过很多坐标才能通过,这里我的想法是以相等的间隔取消设置数组元素,使路由保持相同。请有人指导我如何从等数间隔的数组中删除许多元素,就像我需要23和总元素是40所以我需要像
array($coordinates1,$coordinates4,$coordinates7,$coordinates9,$coordinates13,$coordinates16,.........,$coordinates39)
答案 0 :(得分:0)
我找到了一种可能的方法,它有点长,但我得到了确切的要求结果
$required_elements = 23;
$way = array();
for($ini=1;$ini<=78;$ini++)
{
$way[] = "Co-Ordinated:".$ini;
}
$total_elements = count($way);
list($way1, $way2) = array_chunk($way, ceil(count($way) / 2));
$differrence_element = $total_elements-$required_elements;
$skip_element = ceil($total_elements/$differrence_element);
$output = array();
if($total_elements > $required_elements)
{
$i=1;$j=0;
foreach($way as $x)
{
if($i == $skip_element)
{
$i=1;$j++;
continue;
}
else
{
$output[] = $way1[$j];
if(count($output) >= $required_elements) break;
$output[] = $way2[$j];
if(count($output) >= $required_elements) break;
$i++;$j++;
}
}
}
else
{
$output = $way;
}
$output1 = array();
$output2 = array();
$i=0;
foreach($output as $g)
{
if($i%2 == 0)
$output1[] = $g;
else
$output2[] = $g;
$i++;
}
$result = array_merge($output1,$output2);
print_r($way);
echo "<br><br><pre>";
print_r($result);
echo '</pre>';