Я хочу рассчитать расстояние в N городах и взять вероятность междугородности.
Я не могу получить вставку в многомерный массив, работающий в PHP.
Может кто-нибудь помочь мне с вставкой расстояний в 2d массив?
class jarak2d extends addLat{
var $simpanjarak;
public function __construct() {
$this->simpanjarak=array_values(array(array()));
}
public function simpanbobot($simpanjarak) {
$a = $this->simpanjarak = $simpanjarak;
if (!empty($a));
{
$this->addbaru=$a;
}
return $this->addbaru;
}
public function gethasiljarak()
{
return $this->addbaru;
}
}
class addLat {
var $simpan;
var $simpanlat;
var $simpanlng;
var $lata;
var $long;
var $simpanjarak;
var $bobot;
var $addbaru;
public function __construct() {
$this->lata = array();
$this->long = array();
$this->simpan = array();
$this->lat = array();
$this->lng = array();
$this->simpanjarak = array();
}
public function addKota($addLat) {
$this->simpan = $addLat;
$address = $this->simpan;
$coordinates = file_get_contents('http://maps.googleapis.com/maps/api/geocode/json?address=' . urlencode($address) . '&sensor=true');
$coordinates = json_decode($coordinates);
echo 'Latitude:' . $coordinates->results[0]->geometry->location->lat;
echo "<br \>";
echo 'Longitude:' . $coordinates->results[0]->geometry->location->lng;
echo ' <br \> Address ' . $address . '<br \>';
echo "<br \>";
$lat = $coordinates->results[0]->geometry->location->lat;
$lng = $coordinates->results[0]->geometry->location->lng;
$a = $this->lata = $lat;
$b = $a;
$this->lata = $b;
$c = $this->long = $lng;
$d = $c;
$this->long = $d;
// echo "<br \> Latitude " . $this->lata . "<br \>";
}
public function insertLat($lata) {
$this->lata = lata;
}
public function insertLong($long) {
$this->long = long;
}
public function getLat() {
//echo $this->lata;
return $this->lata;
}
public function getLong() {
//echo $this->long;
return $this->long;
}
public function addJarak($berangkat, $tujuankota) {
$berangkat = urlencode($berangkat);
$tujuankota = urlencode($tujuankota);
$data = file_get_contents("http://maps.googleapis.com/maps/api/distancematrix/json?origins=$berangkat&destinations=$tujuankota&language=en-EN&sensor=false");
$data = json_decode($data);
//$waktu = 0;
$jarak = 0;
foreach ($data->rows[0]->elements as $road) {
$jarak += $road->distance->value;
$jarak = $jarak / 1000;
}
echo "Berangkat: " . $data->origin_addresses[0];
echo "<br \>";
echo "Tujuan : " . $data->destination_addresses[0];
echo "<br \>";
echo "Jarak: " . $jarak . " KM";
echo "<br \>";
echo "<br \>";
$a = $this->simpanjarak = $jarak;
echo $a;
return $a;
}
public function getJarak() {
return $this->simpanjarak;
}
}
$addLat = new addLat();
$test = 'Jakarta';
$test1 = 'Brebes';
$test2='Pekalongan';
$test3 ='Semarang';
/*jarak */
$berangkat = $test;
$tujuankota = $test1;
$addLat->addJarak($berangkat, $tujuankota);
$hasil1 = array('Kota Berangkat' => $berangkat, 'Kota Tujuan' => $tujuankota, 'Jarak' => $addLat->getJarak() . ' KM');
$hasiljarak = array (array($addLat->getJarak())) ;
$bobot[] = $hasil1;
//$simpanjarak = $hasiljarak;
$berangkat = $test1;
$tujuankota = $test2;
$addLat->addJarak($berangkat, $tujuankota);
$hasil2 = array('Kota Berangkat' => $berangkat, 'Kota Tujuan' => $tujuankota, 'Jarak' => $addLat->getJarak() . ' KM');
$hasiljarak1 = array(
array($addLat->getJarak()),
($addLat->getJarak()),
array($addLat->getJarak())
);
$bobot[] = $hasil2;
$simpanjarak[]=$hasiljarak1;
$simpanjarak[]=$hasiljarak;
$add = new addJarak();
$add->setNilai($bobot);
echo "<br \> <br \> ArrayList Jarak Antar Kota / KM<pre>" . print_r($add->getNilai(), true) . "</pre> <br />";
$jarakd2= new jarak2d();
$jarakd2->simpanbobot($simpanjarak);
$jarakd2->simpanbobot($simpanjarak);
echo "<pre>" .print_r($jarakd2->gethasiljarak(),true ). "</pre>";
echo $hasiljarak[0][0] . $hasiljarak[1][0][0];
Задача ещё не решена.
Других решений пока нет …