도움이 필요합니다. Google API Snap To Road를 사용하고 있습니다. Road To Snap API에서 결과 얻기
<?php
set_time_limit(0);
$jsonarr = array();
$today=date("Y-m-d");
$ACCOUNT=$_GET['ACCOUNT'];
$ticket_no=$_GET['ticket_no'];
require_once("config/msdb_connect.php");
$query = mssql_query("SELECT * FROM TblGps WHERE DOOR = '".$ticket_no."' AND DATETIME BETWEEN '".$today." 00:00:00' AND '".$today." 23:59:59' ORDER BY DATETIME DESC");
while($row = mssql_fetch_array($query))
{
//parameters
$lng=$row['LONG'];
$lat=$row['LAT'];
//$data = array('lat'=>$lat,'lng'=>$lng);
//echo $latlng = GetArray($data);
$jsonarr[] = array(
'id' => $row['ID'],
'account' => $row['ACCOUNT'],
'datetime' =>date("m/d/Y H:i:s",strtotime($row['DATETIME'])),
'loc' => $row['LOCATION'],
// 'speed' => $row['SPEED'],
'longi' => $lng,
'lat' => $lat,
'lac' => $row['LAC'],
'cid' => $row['CID'],
// 'engine' => $row['ENGINE'],
'remarks' => $row['REMARKS']
);
}
$path = GetArray($jsonarr);
$snailtrail=GetSnailTrail($path);
function GetArray($array){
$stringdata = "";
for($i = 0 ; $i <= count($array) - 1 ; $i++){
$rows = (object)$array[$i];
if($i == count($array) - 1) $stringdata .= $rows->lat.','.$rows->longi;
else $stringdata .= $rows->lat.','.$rows->longi.'|';
}
return $stringdata;
}
function GetSnailTrail($path){
$key='AIzaSyDRlfacNyHn7ZOsC0FzufqZ_rtQYfZD6wA';
$url='https://roads.googleapis.com/v1/snapToRoads?path='.$path.'&interpolate=true&key='.$key.' ';
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_CUSTOMREQUEST,"POST");
// curl_setopt($curl, CURLOPT_POSTFIELDS, $json);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
$api_response = curl_exec($curl);
curl_close($curl);
$result = json_decode($api_response);
$result = (object)$result;
$result = (object)$result->location;
return $result;
}
그래서 내가, 데이타베이스에서 경도 값 및 위도를 가져 오는 해요 : 다음은 내 코드입니다. 그런 다음 GetAnail 함수를 사용하여 GetSnailTrail 함수의 매개 변수 경로에 대한 여러 레코드로 구성합니다. 내가 에코 또는 얻을 수없는 몇 가지 이유를 들어
{
"snappedPoints": [
{
"location": {
"latitude": 14.567361300000002,
"longitude": 121.03068420000001
},
"originalIndex": 0,
"placeId": "ChIJF6oagKzJlzMRlFWOLr4F1SI"
}
이 같은 결과가 반환 후
https://roads.googleapis.com/v1/snapToRoads?path=14.567467,121.030726|14.566950,121.030497|14.567447,121.031204|14.566947,121.030520|14.566947,121.030520|14.567590,121.031181|14.567590,121.031181|14.567377,121.031236|14.566947,121.030520|14.567447,121.031204|14.566947,121.030520|14.566947,121.030520|14.566947,121.030520|14.566947,121.030520|14.567590,121.031181|14.567377,121.031236|14.567447,121.031204|14.567377,121.031236|14.567377,121.031236|14.567377,121.031236|14.567377,121.031236|14.567377,121.031236|14.567377,121.031236|14.567590,121.031181|14.567377,121.031236|14.567590,121.031181|14.567377,121.031236|14.567447,121.031204|14.567377,121.031236|14.567447,121.031204|14.567377,121.031236|14.567466,121.030726|14.567377,121.031236|14.567377,121.031236|14.567377,121.031236|14.567447,121.031204|14.567377,121.031236|14.567056,121.030569|14.567012,121.030539|14.567049,121.030568|14.567009,121.030545|14.567468,121.030728|14.567031,121.030549|14.567007,121.030545|14.567098,121.030403|14.567037,121.030548|14.567178,121.030624|14.566899,121.030486|14.566946,121.030520|14.567056,121.030569|14.567056,121.030569|14.567056,121.030569|14.566946,121.030520|14.566947,121.030522|14.566947,121.030522|14.566947,121.030522|14.567103,121.030594|14.566946,121.030520|14.566947,121.030522|14.566947,121.030524|14.567028,121.030556|14.566780,121.030502|14.566780,121.030502|14.567103,121.030594|14.567103,121.030594|14.566947,121.030522|14.566946,121.030520|14.566946,121.030520|14.566946,121.030520|14.566947,121.030524|14.566947,121.030524&interpolate=true&key=AIzaSyDRlfacNyHn7ZOsC0FzufqZ_rtQYfZD6wA
API를 :
는 그래서 API에 전송하기 전에 다음과 같이 될 것입니다 응답을 내 $jsonarr
에 입력하십시오. 응답을 받으면 어떻게해야합니까? 고맙습니다
은 컬 오류를 제공 했습니까? 참조 : [curl_error] (http://php.net/manual/en/function.curl-error.php). 및'var_dump ($ api_response)'를 사용하십시오. – Jigar
예 411 오류 –