Сообщение: неопределенное свойство: stdClass :: $ distance Google Distance API - PullRequest
0 голосов
/ 04 мая 2020

Я пытаюсь решить эту ошибку в течение нескольких дней, но не могу найти решение для этой ошибки. У меня есть координатный набор текстовых данных, я хочу получить расстояние, используя эту координату. при запуске отображается сообщение об ошибке: неопределенное свойство: stdClass :: $ distance и сообщение: при попытке получить свойство 'value' для необъекта

подскажите, что не так с кодом?

public function inisialisasiPopulasi()
{
    $ObjekWisata = $this->generateKromosom();
    $populasi = array(
        array(
            "gen1"  => array("namalokasi" => "Lokasi Awal", "Kabupaten" => "Kabupaten awal", "longitude" => 0, "latitude" => 0),
            "gen2" => array("namalokasi" => "Destinasi 1", "Kabupaten" => "Kabupaten Destinasi 1", "Kategori" => 0, "latitude" => 0, "longitude" => 0,  "harga_seninJumat" => 0, "harga_sabtuMinggu" => 0),
            "gen3"   => array("namalokasi" => "Destinasi2", "Kabupaten" => "Kabupaten Destinasi 2", "Kategori" => 0, "latitude" => 0, "longitude" => 0, "harga_seninJumat" => 0, "harga_sabtuMinggu" => 0),
            "gen4"  => array("namalokasi" => "Lokasi Awal", "Kabupaten" => "Kabupaten awal", "longitude" => 0, "latitude" => 0)
        )
    );

    for ($i = 1; $i < 500; $i++) {
        shuffle($ObjekWisata); // baris ini untuk merandom objek wisata
        $kromosom = array(array(
            "gen1"  => array("namalokasi" => "Lokasi Awal", "Kabupaten" => "Kabupaten awal", "longitude" => 0, "latitude" => 0),
            "gen2" => array("namalokasi" => $ObjekWisata[0][1], "Kabupaten" => $ObjekWisata[0][2], "Kategori" => $ObjekWisata[0][3], "latitude" => $ObjekWisata[0][4], "longitude" => $ObjekWisata[0][5], "harga_seninJumat" => $ObjekWisata[0][6], "harga_sabtuMinggu" => $ObjekWisata[0][7]),
            "gen3"   => array("namalokasi" => $ObjekWisata[1][1], "Kabupaten" => $ObjekWisata[1][2], "Kategori" => $ObjekWisata[1][3], "latitude" => $ObjekWisata[1][4], "longitude" => $ObjekWisata[1][5], "harga_seninJumat" => $ObjekWisata[1][6], "harga_sabtuMinggu" => $ObjekWisata[1][7]),
            "gen4"  => array("namalokasi" => "Lokasi Awal", "Kabupaten" => "Kabupaten awal", "longitude" => 0, "latitude" => 0),
            "jarak" => array("K1K2" => $this->jarak(doubleval($ObjekWisata[0][4]), doubleval($ObjekWisata[0][5]), doubleval($ObjekWisata[1][4]), doubleval($ObjekWisata[1][5])))
        ));
        $populasi = array_merge($populasi, $kromosom);
    }
    return $populasi;
}

public function jarak($latFrom, $lngFrom, $latTo, $lngTo)
{
    $dataJson = file_get_contents("https://maps.googleapis.com/maps/api/distancematrix/json?origins=" . $latFrom . "," . $lngFrom . "&destinations=" . $latTo . "," . $lngTo . "&mode=driving&language=pl-PL&key=AIzaSyDN1XxxneHyCz6PtbQlGfqHSm13RH16Pvc");
    $data = json_decode($dataJson);
    $distance = $data->rows[0]->elements[0]->distance->value;
    return $distance;
}

1 Ответ

0 голосов
/ 04 мая 2020

Потому что, когда вы получаете содержимое формы Google API. Это не может быть найдено: Вы можете попробовать:

$distance = $data->rows[0]->elements[0]->status !== 'NOT_FOUND' ? $data->rows[0]->elements[0]->distance->value : false;
...