訊息:未定義屬性:stdClass::$distance Google Distance API 未定义属性: stdClass::$distance Google Distance API

问题描述 投票:0回答:1

我尝试解决这个错误几天了,但我找不到解决这个错误的方法。我有一个coordinatstrong texte数据集,我想用这个坐标得到距离,当我运行的时候,它显示错误信息:Undefined property: stdClass::$distanceand Message: Undefined property: Undefined property: stdClass::$distanceand Message: 试图获取非对象的属性'值'。

你能告诉我代码有什么问题吗?

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;
}
php arrays json google-distancematrix-api
1个回答
0
投票

因为当你得到的内容形式谷歌api。它的可以是找不到:你可以试试。

$distance = $data->rows[0]->elements[0]->status !== 'NOT_FOUND' ? $data->rows[0]->elements[0]->distance->value : false;
© www.soinside.com 2019 - 2024. All rights reserved.