【问题标题】:Get lat and long获得经纬度
【发布时间】:2020-03-17 10:46:21
【问题描述】:

我正在构建一个函数来从谷歌地图链接中获取纬度和经度。我让它工作它应该如何工作它应该如何工作:

public function getLocaties(){
    $locations = $this->getObjects(68);

    foreach ($locations as $location) {
        $latAndLong = $this->getLatAndLong($locations ['data']['link']);
        $location['data']['latiude'] = $latAndLong['lat'];
        $location['data']['longtitude'] = $latAndLong['long'];
        var_dump($locatie);
    }

    return $locaties;
}

现在 var_dump 打印以下内容:

`array(4) {
  ["id"]=>
  string(2) "69"
  ["type_id"]=>
  string(2) "24"
  ["parent_id"]=>
  string(2) "68"
  ["data"]=>
  array(13) {
    ["object_name"]=>
    string(28) "Hajé restaurant de Taveerne"
    ["object_createdate"]=>
    string(10) "1584437106"
    ["object_createuser"]=>
    string(3) "{4}"
    ["object_read"]=>
    string(3) "{4}"
    ["object_write"]=>
    string(3) "{4}"
    ["object_delete"]=>
    string(3) "{4}"
    ["object_update"]=>
    string(3) "{4}"
    ["object_display"]=>
    string(4) "tree"
    ["object_priority"]=>
    string(1) "1"
    ["data_html"]=>
    string(80) "<p>Haj&eacute; de Taveerne Oostvaardersdijk 01-09 8244 PA Lelystad Nederland</p>"
    ["link"]=>
    string(162) "https://www.google.com/maps/place/Haj%C3%A9+restaurant+de+Taveerne/@52.522116,5.437504,12z/data=!4m5!3m4!1s0x0:0x2a85d0586811bc85!8m2!3d52.522116!4d5.437504?hl=nl"
    ["latiude"]=>
    array(1) {
      [0]=>
      string(9) "52.522116"
    }
    ["longtitude"]=>
    array(1) {
      [0]=>
      string(8) "5.437504"
    }
  }
}`

这是完美的,但是当我在 index.php 中调用该函数时,它会从数组中删除 lat 和 long:

$locations = $blokken->getLocaties();
    var_dump($locations);

var_dump 打印出以下内容:

    `array(1) {
  [0]=>
  array(4) {
    ["id"]=>
    string(2) "69"
    ["type_id"]=>
    string(2) "24"
    ["parent_id"]=>
    string(2) "68"
    ["data"]=>
    array(11) {
      ["object_name"]=>
      string(28) "Hajé restaurant de Taveerne"
      ["object_createdate"]=>
      string(10) "1584437106"
      ["object_createuser"]=>
      string(3) "{4}"
      ["object_read"]=>
      string(3) "{4}"
      ["object_write"]=>
      string(3) "{4}"
      ["object_delete"]=>
      string(3) "{4}"
      ["object_update"]=>
      string(3) "{4}"
      ["object_display"]=>
      string(4) "tree"
      ["object_priority"]=>
      string(1) "1"
      ["data_html"]=>
      string(80) "<p>Haj&eacute; de Taveerne Oostvaardersdijk 01-09 8244 PA Lelystad Nederland</p>"
      ["link"]=>
      string(162) "https://www.google.com/maps/place/Haj%C3%A9+restaurant+de+Taveerne/@52.522116,5.437504,12z/data=!4m5!3m4!1s0x0:0x2a85d0586811bc85!8m2!3d52.522116!4d5.437504?hl=nl"
    }
  }
}`

我有点困惑,为什么我的索引中没有得到纬度和经度

【问题讨论】:

  • getLatAndLong 代码在哪里? $locatie$locaties 定义在哪里?
  • 抱歉$locatie 必须是$location 而$locaties 必须是$locations,我把它翻译成英文。我的问题不在 getLatAndLong 中。

标签: php function google-maps maps latitude-longitude


【解决方案1】:

当您迭代 $locations 时,$location 变量被包含在循环中 - 您不会写回 $locations

尝试添加对$location的引用

public function getLocaties(){
    $locations = $this->getObjects(68);

    foreach ($locations as &$location) {
        $latAndLong = $this->getLatAndLong($locations ['data']['link']);
        $location['data']['latiude'] = $latAndLong['lat'];
        $location['data']['longtitude'] = $latAndLong['long'];
        var_dump($locatie);
    }

    return $locaties;
}

【讨论】:

    猜你喜欢
    • 2011-08-18
    • 2017-01-01
    • 1970-01-01
    • 2011-07-06
    • 2019-10-11
    • 2015-07-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多