【问题标题】:Passing php json to javascript object for google map API将 php json 传递给 google map API 的 javascript 对象
【发布时间】:2015-09-01 10:24:36
【问题描述】:

我建立了一个坐标和其他飓风信息的数据库。

<?php
    include '/database_connector.php'; //include database connection information
 $new = array();
 $result=mysqli_query($con, "select * from Spots15 where `Name` = 'Ana' or 'One'");
 while($row=mysqli_fetch_array($result)){
  $lat      = $row['LAT'];
  $long     = $row['LONG'];
  $latlong = $lat.", ". $long;
  array_push($new, $latlong);
}    
  echo json_encode($new);
?>

这是正确的输出。这是api想要的输出

["31.5, -77.6","31.5, -77.7","31.5, -77.5","31.6, -77.8","31.5, -77.5","31.5, -77.3","31.6, -77.3","31.7, -77.4","31.9, -77.3","32.1, -77.4","32.2, -77.5","32.4, -77.6","32.6, -77.8","32.7, -77.9","32.7, -78.1","32.9, -78.3","32.9, -78.3","33.1, -78.2","33.2, -78.3","33.6, -78.5","33.8, -78.7","34.0, -78.9","34.1, -78.9","34.1, -78.9","34.4, -78.6"]

我想将这些传递给 google map api 可以在地图上绘制坐标。

var four=new google.maps.LatLng(28.2,-96.0);

【问题讨论】:

  • 您是否完成了任何 Google Map API 教程?
  • 是的,我知道这是坐标需要走的正确方式。我的网站上有 api。我已将热带风暴法案硬编码到首页。 hurricanetracking.us
  • 您能否澄清一下..您的问题是什么以及您面临的问题是什么?
  • 数组 $new 应该以以下格式输出到 javascript 中 "var four=new google.maps.LatLng(28.2,-96.0);"我想让每个变量都成为一个数字,但这可能是不可能的

标签: javascript php json google-maps-api-3


【解决方案1】:

您可以在 html 标记之前进行数据检索(或者在另一个 PHP 页面中,使用 include 函数),然后您可以使用该行将 PHP 数组传递给 JavaScript:

var arr = <?php echo json_encode($new) ?>;

此时,在一个for循环中,你可以通过这种方式获取纬度和对数:

var lat = Number(arr[i].split(",")[0].trim());
var lng = Number(arr[i].split(",")[1].trim());

在此之后,您可以使用变量来绘制所有点。

var four = new google.maps.LatLng(lat, lng);

希望我能正确理解您的问题。

这里有一点代码预览。

var arr = <?php echo json_encode($new) ?>;
for(var i=0; i<arr.length;i++)
{
    var lat = Number(arr[i].split(",")[0].trim());
    var lat = Number(arr[i].split(",")[0].trim());
    var four = new google.maps.LatLng(lat,lng);
    var marker=new google.maps.Marker({
                position:four,
                map:map
            });
}

【讨论】:

  • 几个问题。我是否必须在 php 代码和 javascript 代码中都有 json 行,或者我可以将它放在 javascript 部分中吗?其次,我可以为地图上的多个点使用相同的变量?
  • 代码中不需要两次 json_encode 行。仅在 JavaScript 函数中使用它。关于另一个问题,我不是很明白。你能解释一下你的意思吗?
  • 在您的代码中,看起来每次循环时都会在变量 4 中放置一个不同的坐标。
  • 是的。这样,您将绘制整个数组。有什么问题?
  • 我一直在使用w3schools教程
猜你喜欢
  • 2016-08-03
  • 1970-01-01
  • 2011-09-15
  • 1970-01-01
  • 2016-11-09
  • 1970-01-01
  • 2017-10-07
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多