Untitled diff

Created Diff never expires
<?php
<?php


//phpinfo();
//phpinfo();
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
function error($e)
function error($e)
{
{
$html =
$html =
"<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">\n".
"<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">\n".
"<html>\n".
"<html>\n".
"<head>\n".
"<head>\n".
"<style>body {font-family:Verdana; font-size:12px;}</style>\n".
"<style>body {font-family:Verdana; font-size:12px;}</style>\n".
"</head>\n".
"</head>\n".
"<body>\n".
"<body>\n".
$e."\n".
$e."\n".
"</body>\n".
"</body>\n".
"</hmtl>";
"</hmtl>";
die($html);
die($html);
}
}
////////////////////////////
////////////////////////////
function DB_connect($host, $user, $password, $db_name)
function DB_connect($host, $user, $password, $db_name)
{
{
$SQL = @mysql_connect($host, $user, $password) or error("<b>Could not connect to MySQL server:</b> ".mysql_error());
$SQL = @mysql_connect($host, $user, $password) or error("<b>Could not connect to MySQL server:</b> ".mysql_error());
//@mysql_query("SSET CHARACTER SET utf8; SET NAMES utf8;");
//@mysql_query("SSET CHARACTER SET utf8; SET NAMES utf8;");
mysql_set_charset('utf8', $SQL);
mysql_set_charset('utf8', $SQL);
@mysql_select_db($db_name) or error("<b>Database error:</b> ".mysql_error());
@mysql_select_db($db_name) or error("<b>Database error:</b> ".mysql_error());
GLOBAL $count_query;
GLOBAL $count_query;
$count_query++;
$count_query++;
return $SQL;
return $SQL;
}
}
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
function DB_query($SQL)
function DB_query($SQL)
{
{
GLOBAL $count_query;
GLOBAL $count_query;
$count_query++;
$count_query++;
$r = @mysql_query($SQL);
$r = @mysql_query($SQL);
if($r)
if($r)
{
{
return $r;
return $r;
}
}
else
else
{
{
error("<b>Query error:</b> ".mysql_error()."<br><br>\n<b>Query:</b> ".$SQL.';');
error("<b>Query error:</b> ".mysql_error()."<br><br>\n<b>Query:</b> ".$SQL.';');
}
}
}
}
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
function DB_fetch($r)
function DB_fetch($r)
{
{
return @mysql_fetch_array($r);
return @mysql_fetch_array($r);
}
}
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
function get_city_data_by_sql($SQL_MAIN)
function get_city_data_by_sql($SQL_MAIN)
{
{
GLOBAL $main_site_data;
GLOBAL $main_site_data;
$array_id=Array();
$array_id=Array();
$res=DB_query($SQL_MAIN);
$res=DB_query($SQL_MAIN);
$array_subadministrativearea=Array();
$array_subadministrativearea=Array();
$array_administrativearea=Array();
$array_administrativearea=Array();
$array_country=Array();
$array_country=Array();
$i=0;
$i=0;
$array_iata=Array();
$array_iata=Array();
while ($data_locality=DB_fetch($res))
while ($data_locality=DB_fetch($res))
{
{
$array_id[$data_locality['id']]=array();
$array_id[$data_locality['id']]=array();
$array_id[$data_locality['id']]['iata'][1]=$data_locality['near_iata_1'];
$array_id[$data_locality['id']]['iata'][1]=$data_locality['near_iata_1'];
$array_id[$data_locality['id']]['iata'][2]=$data_locality['near_iata_2'];
$array_id[$data_locality['id']]['iata'][2]=$data_locality['near_iata_2'];
$array_id[$data_locality['id']]['iata'][3]=$data_locality['near_iata_3'];
$array_id[$data_locality['id']]['iata'][3]=$data_locality['near_iata_3'];
$array_id[$data_locality['id']]['iata'][4]=$data_locality['near_iata_4'];
$array_id[$data_locality['id']]['iata'][4]=$data_locality['near_iata_4'];
$array_iata[]=$data_locality['near_iata_1'];
$array_iata[]=$data_locality['near_iata_1'];
$array_iata[]=$data_locality['near_iata_2'];
$array_iata[]=$data_locality['near_iata_2'];
$array_iata[]=$data_locality['near_iata_3'];
$array_iata[]=$data_locality['near_iata_3'];
$array_iata[]=$data_locality['near_iata_4'];
$array_iata[]=$data_locality['near_iata_4'];
$array_id[$data_locality['id']]['locality']['id']=$data_locality['id'];
$array_id[$data_locality['id']]['locality']['id']=$data_locality['id'];
$array_id[$data_locality['id']]['locality']['name']=$data_locality['LocalityName'];
$array_id[$data_locality['id']]['locality']['name']=$data_locality['LocalityName'];
$array_id[$data_locality['id']]['locality']['url']=$data_locality['url'];
$array_id[$data_locality['id']]['locality']['url']=$data_locality['url'];
$array_id[$data_locality['id']]['locality']['x']=$data_locality['x'];
$array_id[$data_locality['id']]['locality']['x']=$data_locality['x'];
$array_id[$data_locality['id']]['locality']['y']=$data_locality['y'];
$array_id[$data_locality['id']]['locality']['y']=$data_locality['y'];
$array_id[$data_locality['id']]['subadministrativearea']['id']=$data_locality['SubAdministrativeAreaId'];
$array_id[$data_locality['id']]['subadministrativearea']['id']=$data_locality['SubAdministrativeAreaId'];
$array_subadministrativearea[$data_locality['SubAdministrativeAreaId']]=$i;;
$array_subadministrativearea[$data_locality['SubAdministrativeAreaId']]=$i;;
$array_id[$data_locality['id']]['administrativearea']['id']=$data_locality['AdministrativeAreaId'];
$array_id[$data_locality['id']]['administrativearea']['id']=$data_locality['AdministrativeAreaId'];
$array_administrativearea[$data_locality['AdministrativeAreaId']]=$i;
$array_administrativearea[$data_locality['AdministrativeAreaId']]=$i;
$array_id[$data_locality['id']]['country']['id']=$data_locality['CountryId'];
$array_id[$data_locality['id']]['country']['id']=$data_locality['CountryId'];
$array_country[$data_locality['CountryId']]=$i;
$array_country[$data_locality['CountryId']]=$i;
$i++;
$i++;
}
}
$tmp=array_flip($array_subadministrativearea);
$tmp=array_flip($array_subadministrativearea);
$SQL="SELECT `id`,`SubAdministrativeAreaName`,`url` FROM `subadministrativeareas` WHERE `id` IN (".implode(',', $tmp).") LIMIT ".count($tmp);
$SQL="SELECT `id`,`SubAdministrativeAreaName`,`url` FROM `subadministrativeareas` WHERE `id` IN (".implode(',', $tmp).") LIMIT ".count($tmp);
$res=DB_query($SQL);
$res=DB_query($SQL);
while ($data_subadministrativearea=DB_fetch($res))
while ($data_subadministrativearea=DB_fetch($res))
{
{
$array_subadministrativearea[$data_subadministrativearea['id']]=array();
$array_subadministrativearea[$data_subadministrativearea['id']]=array();
$array_subadministrativearea[$data_subadministrativearea['id']]['name']=$data_subadministrativearea['SubAdministrativeAreaName'];
$array_subadministrativearea[$data_subadministrativearea['id']]['name']=$data_subadministrativearea['SubAdministrativeAreaName'];
$array_subadministrativearea[$data_subadministrativearea['id']]['url']=$data_subadministrativearea['url'];
$array_subadministrativearea[$data_subadministrativearea['id']]['url']=$data_subadministrativearea['url'];
}
}
$tmp=array_flip($array_administrativearea);
$tmp=array_flip($array_administrativearea);
$SQL="SELECT `id`,`AdministrativeAreaName`,`url` FROM `administrativeareas` WHERE `id` IN (".implode(',', $tmp).") LIMIT ".count($tmp);
$SQL="SELECT `id`,`AdministrativeAreaName`,`url` FROM `administrativeareas` WHERE `id` IN (".implode(',', $tmp).") LIMIT ".count($tmp);
$res=DB_query($SQL);
$res=DB_query($SQL);
while ($data_administrativearea=DB_fetch($res))
while ($data_administrativearea=DB_fetch($res))
{
{
$array_administrativearea[$data_administrativearea['id']]=array();
$array_administrativearea[$data_administrativearea['id']]=array();
$array_administrativearea[$data_administrativearea['id']]['name']=$data_administrativearea['AdministrativeAreaName'];
$array_administrativearea[$data_administrativearea['id']]['name']=$data_administrativearea['AdministrativeAreaName'];
$array_administrativearea[$data_administrativearea['id']]['url']=$data_administrativearea['url'];
$array_administrativearea[$data_administrativearea['id']]['url']=$data_administrativearea['url'];
}
}
$tmp=array_flip($array_country);
$tmp=array_flip($array_country);
$SQL="SELECT `id`,`CountryName`,`url`,`CountryNameCode`,`SiteId` FROM `countries` WHERE `id` IN (".implode(',', $tmp).") LIMIT ".count($tmp);
$SQL="SELECT `id`,`CountryName`,`url`,`CountryNameCode`,`SiteId` FROM `countries` WHERE `id` IN (".implode(',', $tmp).") LIMIT ".count($tmp);
$res=DB_query($SQL);
$res=DB_query($SQL);
while ($data_country=DB_fetch($res))
while ($data_country=DB_fetch($res))
{
{
$array_country[$data_country['id']]=array();
$array_country[$data_country['id']]=array();
$array_country[$data_country['id']]['name']=$data_country['CountryName'];
$array_country[$data_country['id']]['name']=$data_country['CountryName'];
$array_country[$data_country['id']]['code']=$data_country['CountryNameCode'];
$array_country[$data_country['id']]['code']=$data_country['CountryNameCode'];
$array_country[$data_country['id']]['url']=$data_country['url'];
$array_country[$data_country['id']]['url']=$data_country['url'];
$array_country[$data_country['id']]['siteid']=$data_country['SiteId'];
$array_country[$data_country['id']]['siteid']=$data_country['SiteId'];
}
}
$SQL="SELECT `id`,`city_id` FROM `iata_citys` WHERE `id` IN (".implode(',', $array_iata).") LIMIT ".count($array_iata);
$SQL="SELECT `id`,`city_id` FROM `iata_citys` WHERE `id` IN (".implode(',', $array_iata).") LIMIT ".count($array_iata);
$res=DB_query($SQL);
$res=DB_query($SQL);
$new_array_iata=Array();
$new_array_iata=Array();
while ($data_iata=DB_fetch($res))
while ($data_iata=DB_fetch($res))
{
{
$new_array_iata[$data_iata['id']]=$data_iata['city_id'];
$new_array_iata[$data_iata['id']]=$data_iata['city_id'];
}
}
foreach ($array_id AS $key=>$value)
foreach ($array_id AS $key=>$value)
{
{
$array_id[$key]['new_iata']=array();
$array_id[$key]['new_iata']=array();
if (isset($new_array_iata[$array_id[$key]['iata']['1']]))
if (isset($new_array_iata[$array_id[$key]['iata']['1']]))
{
{
$array_id[$key]['new_iata'][$array_id[$key]['iata']['1']]=$new_array_iata[$array_id[$key]['iata']['1']];
$array_id[$key]['new_iata'][$array_id[$key]['iata']['1']]=$new_array_iata[$array_id[$key]['iata']['1']];
} else {
} else {
$array_id[$key]['new_iata'][$array_id[$key]['iata']['1']]=0;
$array_id[$key]['new_iata'][$array_id[$key]['iata']['1']]=0;
}
}
if (isset($new_array_iata[$array_id[$key]['iata']['2']]))
if (isset($new_array_iata[$array_id[$key]['iata']['2']]))
{
{
$array_id[$key]['new_iata'][$array_id[$key]['iata']['2']]=$new_array_iata[$array_id[$key]['iata']['2']];
$array_id[$key]['new_iata'][$array_id[$key]['iata']['2']]=$new_array_iata[$array_id[$key]['iata']['2']];
} else {
} else {
$array_id[$key]['new_iata'][$array_id[$key]['iata']['2']]=0;
$array_id[$key]['new_iata'][$array_id[$key]['iata']['2']]=0;
}
}
if (isset($new_array_iata[$array_id[$key]['iata']['3']]))
if (isset($new_array_iata[$array_id[$key]['iata']['3']]))
{
{
$array_id[$key]['new_iata'][$array_id[$key]['iata']['3']]=$new_array_iata[$array_id[$key]['iata']['3']];
$array_id[$key]['new_iata'][$array_id[$key]['iata']['3']]=$new_array_iata[$array_id[$key]['iata']['3']];
} else {
} else {
$array_id[$key]['new_iata'][$array_id[$key]['iata']['3']]=0;
$array_id[$key]['new_iata'][$array_id[$key]['iata']['3']]=0;
}
}
if (isset($new_array_iata[$array_id[$key]['iata']['4']]))
if (isset($new_array_iata[$array_id[$key]['iata']['4']]))
{
{
$array_id[$key]['new_iata'][$array_id[$key]['iata']['4']]=$new_array_iata[$array_id[$key]['iata']['4']];
$array_id[$key]['new_iata'][$array_id[$key]['iata']['4']]=$new_array_iata[$array_id[$key]['iata']['4']];
} else {
} else {
$array_id[$key]['new_iata'][$array_id[$key]['iata']['4']]=0;
$array_id[$key]['new_iata'][$array_id[$key]['iata']['4']]=0;
}
}
$array_id[$key]['iata']=$array_id[$key]['new_iata'];
$array_id[$key]['iata']=$array_id[$key]['new_iata'];
unset($array_id[$key]['new_iata']);
unset($array_id[$key]['new_iata']);
$array_id[$key]['subadministrativearea']['name']=$array_subadministrativearea[$array_id[$key]['subadministrativearea']['id']]['name'];
$array_id[$key]['subadministrativearea']['name']=$array_subadministrativearea[$array_id[$key]['subadministrativearea']['id']]['name'];
$array_id[$key]['subadministrativearea']['url']=$array_subadministrativearea[$array_id[$key]['subadministrativearea']['id']]['url'];
$array_id[$key]['subadministrativearea']['url']=$array_subadministrativearea[$array_id[$key]['subadministrativearea']['id']]['url'];
$array_id[$key]['administrativearea']['name']=$array_administrativearea[$array_id[$key]['administrativearea']['id']]['name'];
$array_id[$key]['administrativearea']['name']=$array_administrativearea[$array_id[$key]['administrativearea']['id']]['name'];
$array_id[$key]['administrativearea']['url']=$array_administrativearea[$array_id[$key]['administrativearea']['id']]['url'];
$array_id[$key]['administrativearea']['url']=$array_administrativearea[$array_id[$key]['administrativearea']['id']]['url'];
$array_id[$key]['country']['name']=$array_country[$array_id[$key]['country']['id']]['name'];
$array_id[$key]['country']['name']=$array_country[$array_id[$key]['country']['id']]['name'];
$array_id[$key]['country']['code']=$array_country[$array_id[$key]['country']['id']]['code'];
$array_id[$key]['country']['code']=$array_country[$array_id[$key]['country']['id']]['code'];
$array_id[$key]['country']['url']=$array_country[$array_id[$key]['country']['id']]['url'];
$array_id[$key]['country']['url']=$array_country[$array_id[$key]['country']['id']]['url'];
$array_id[$key]['country']['siteid']=$array_country[$array_id[$key]['country']['id']]['siteid'];
$array_id[$key]['country']['siteid']=$array_country[$array_id[$key]['country']['id']]['siteid'];
$temp=Array();
$temp=Array();
$temp[]=$array_id[$key]['locality']['name'];
$temp[]=$array_id[$key]['locality']['name'];
if (($array_id[$key]['subadministrativearea']['name']!='')&&(!in_array($array_id[$key]['subadministrativearea']['name'], $temp)))
if (($array_id[$key]['subadministrativearea']['name']!='')&&(!in_array($array_id[$key]['subadministrativearea']['name'], $temp)))
$temp[]=$array_id[$key]['subadministrativearea']['name'];
$temp[]=$array_id[$key]['subadministrativearea']['name'];
if (($array_id[$key]['administrativearea']['name']!='')&&(!in_array($array_id[$key]['administrativearea']['name'], $temp)))
if (($array_id[$key]['administrativearea']['name']!='')&&(!in_array($array_id[$key]['administrativearea']['name'], $temp)))
$temp[]=$array_id[$key]['administrativearea']['name'];
$temp[]=$array_id[$key]['administrativearea']['name'];
$array_id[$key]['description']['short']=implode(', ', $temp);
$array_id[$key]['description']['short']=implode(', ', $temp);
$temp=Array();
$temp=Array();
$temp[]=$array_id[$key]['locality']['name'];
$temp[]=$array_id[$key]['locality']['name'];
if (($array_id[$key]['subadministrativearea']['name']!='')&&(!in_array($array_id[$key]['subadministrativearea']['name'], $temp)))
if (($array_id[$key]['subadministrativearea']['name']!='')&&(!in_array($array_id[$key]['subadministrativearea']['name'], $temp)))
$temp[]=$array_id[$key]['subadministrativearea']['name'];
$temp[]=$array_id[$key]['subadministrativearea']['name'];
if (($array_id[$key]['administrativearea']['name']!='')&&(!in_array($array_id[$key]['administrativearea']['name'], $temp)))
if (($array_id[$key]['administrativearea']['name']!='')&&(!in_array($array_id[$key]['administrativearea']['name'], $temp)))
$temp[]=$array_id[$key]['administrativearea']['name'];
$temp[]=$array_id[$key]['administrativearea']['name'];
if (($array_id[$key]['country']['name']!='')&&(!in_array($array_id[$key]['country']['name'], $temp)))
if (($array_id[$key]['country']['name']!='')&&(!in_array($array_id[$key]['country']['name'], $temp)))
$temp[]=$array_id[$key]['country']['name'];
$temp[]=$array_id[$key]['country']['name'];
unset($temp[0]);
unset($temp[0]);
$array_id[$key]['description']['full']=implode(', ', $temp);
$array_id[$key]['description']['full']=implode(', ', $temp);
}
}
return $array_id;
return $array_id;
}
}
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
function get_url_from_yandex($load_url, $count=1)
function get_url_from_yandex($load_url, $count=1)
{
{
$c = curl_init();
$c = curl_init();
curl_setopt($c, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($c, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($c, CURLOPT_URL, $load_url);
curl_setopt($c, CURLOPT_URL, $load_url);
curl_setopt($c, CURLOPT_USERAGENT,'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.0.3) Gecko/2008092417 Firefox/3.0.3');// каким браузером представляться
curl_setopt($c, CURLOPT_USERAGENT,'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.0.3) Gecko/2008092417 Firefox/3.0.3');// каким браузером представляться
curl_setopt($c, CURLOPT_TIMEOUT,60);// максимальное время выполнения операции в секундах
curl_setopt($c, CURLOPT_TIMEOUT,60);// максимальное время выполнения операции в секундах
$string = curl_exec($c);
$string = curl_exec($c);
curl_close($c);
curl_close($c);
//$string=@file_get_contents($load_url);
//$string=@file_get_contents($load_url);
if ((!$string)&&($count<=10))
if ((!$string)&&($count<=10))
{
{
return get_url_from_yandex($load_url,$count+1);
return get_url_from_yandex($load_url,$count+1);
} else {
} else {
if ($string=='')
if ($string=='')
{
{
return false;
return false;
} else {
} else {
return $string;
return $string;
}
}
}
}
}
}
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
function get_city_data_from_geo_object($object)
function get_city_data_from_geo_object($object)
{
{
GLOBAL $main_site_data;
GLOBAL $main_site_data;
$locality=Array();
$locality=Array();
$temp='';
$temp='';
$temp=explode(' ',$object->GeoObject->Point->pos);
$temp=explode(' ',$object->GeoObject->Point->pos);
$locality['pos']=Array();
$locality['pos']=Array();
$locality['pos']['x']=$temp[0];
$locality['pos']['x']=$temp[0];
$locality['pos']['y']=$temp[1];
$locality['pos']['y']=$temp[1];


$temp='';
$temp='';
$temp=json_encode($object->GeoObject->metaDataProperty->GeocoderMetaData->AddressDetails);
$temp=json_encode($object->GeoObject->metaDataProperty->GeocoderMetaData->AddressDetails);
$temp=str_replace("'", '`', $temp);
$temp=str_replace("'", '`', $temp);
$locality['CountryNameCode']='';
$locality['CountryNameCode']='';
if (preg_match('/"CountryNameCode":"([^\"]+)"/ui', $temp, $matches))
if (preg_match('/"CountryNameCode":"([^\"]+)"/ui', $temp, $matches))
{
{
if (isset($matches[0]))
if (isset($matches[0]))
{
{
$smal_temp=json_decode('{'.$matches[0].'}');
$smal_temp=json_decode('{'.$matches[0].'}');
$locality['CountryNameCode']=$smal_temp->CountryNameCode;
$locality['CountryNameCode']=$smal_temp->CountryNameCode;
}
}
}
}
$locality['CountryName']='';
$locality['CountryName']='';
if (preg_match('/"CountryName":"([^\"]+)"/ui', $temp, $matches))
if (preg_match('/"CountryName":"([^\"]+)"/ui', $temp, $matches))
{
{
if (isset($matches[0]))
if (isset($matches[0]))
{
{
$smal_temp=json_decode('{'.$matches[0].'}');
$smal_temp=json_decode('{'.$matches[0].'}');
$locality['CountryName']=$smal_temp->CountryName;
$locality['CountryName']=$smal_temp->CountryName;
}
}
}
}
$locality['AdministrativeAreaName']='';
$locality['AdministrativeAreaName']='';
if (preg_match('/"AdministrativeAreaName":"([^\"]+)"/ui', $temp, $matches))
if (preg_match('/"AdministrativeAreaName":"([^\"]+)"/ui', $temp, $matches))
{
{
if (isset($matches[0]))
if (isset($matches[0]))
{
{
$smal_temp=json_decode('{'.$matches[0].'}');
$smal_temp=json_decode('{'.$matches[0].'}');
$locality['AdministrativeAreaName']=$smal_temp->AdministrativeAreaName;
$locality['AdministrativeAreaName']=$smal_temp->AdministrativeAreaName;
}
}
}
}
$locality['SubAdministrativeAreaName']='';
$locality['SubAdministrativeAreaName']='';
if (preg_match('/"SubAdministrativeAreaName":"([^\"]+)"/ui', $temp, $matches))
if (preg_match('/"SubAdministrativeAreaName":"([^\"]+)"/ui', $temp, $matches))
{
{
if (isset($matches[0]))
if (isset($matches[0]))
{
{
$smal_temp=json_decode('{'.$matches[0].'}');
$smal_temp=json_decode('{'.$matches[0].'}');
$locality['SubAdministrativeAreaName']=$smal_temp->SubAdministrativeAreaName;
$locality['SubAdministrativeAreaName']=$smal_temp->SubAdministrativeAreaName;
}
}
}
}
$locality['LocalityName']='';
$locality['LocalityName']='';
if (preg_match('/"LocalityName":"([^\"]+)"/ui', $temp, $matches))
if (preg_match('/"LocalityName":"([^\"]+)"/ui', $temp, $matches))
{
{
if (isset($matches[0]))
if (isset($matches[0]))
{
{
$smal_temp=json_decode('{'.$matches[0].'}');
$smal_temp=json_decode('{'.$matches[0].'}');
$locality['LocalityName']=$smal_temp->LocalityName;
$locality['LocalityName']=$smal_temp->LocalityName;
}
}
}
}
if (($locality['LocalityName']!='')&&($object->GeoObject->metaDataProperty->GeocoderMetaData->kind=='locality'))
if (($locality['LocalityName']!='')&&($object->GeoObject->metaDataProperty->GeocoderMetaData->kind=='locality'))
{
{


$array_return=Array();
$array_return=Array();
$SQL="SELECT `id` FROM `countries` WHERE `CountryNameCode`='".$locality['CountryNameCode']."' LIMIT 1";
$SQL="SELECT `id` FROM `countries` WHERE `CountryNameCode`='".$locality['CountryNameCode']."' LIMIT 1";
$res=DB_query($SQL);
$res=DB_query($SQL);
if (mysql_num_rows($res)==0)
if (mysql_num_rows($res)==0)
{
{
$url=toURL($locality['CountryNameCode']);
$url=toURL($locality['CountryNameCode']);
$SQL="SELECT `id` FROM `countries` WHERE `url`='".$url."' LIMIT 1";
$SQL="SELECT `id` FROM `countries` WHERE `url`='".$url."' LIMIT 1";
$res=DB_query($SQL);
$res=DB_query($SQL);
$i=1;
$i=1;
$temp_url=$url;
$temp_url=$url;
while (mysql_num_rows($res)!=0)
while (mysql_num_rows($res)!=0)
{
{
$url=$temp_url.'-'.$i;
$url=$temp_url.'-'.$i;
$SQL="SELECT `id` FROM `countries` WHERE `url`='".$url."' LIMIT 1";
$SQL="SELECT `id` FROM `countries` WHERE `url`='".$url."' LIMIT 1";
$res=DB_query($SQL);
$res=DB_query($SQL);
$i++;
$i++;
}
}
$SQL="INSERT INTO `countries` SET `CountryNameCode`='".$locality['CountryNameCode']."', `CountryName`='".$locality['CountryName']."', `url`='".$url."'";
$SQL="INSERT INTO `countries` SET `CountryNameCode`='".$locality['CountryNameCode']."', `CountryName`='".$locality['CountryName']."', `url`='".$url."'";
DB_query($SQL);
DB_query($SQL);
$SQL="SELECT `id` FROM `countries` WHERE `CountryNameCode`='".$locality['CountryNameCode']."' LIMIT 1";
$SQL="SELECT `id` FROM `countries` WHERE `CountryNameCode`='".$locality['CountryNameCode']."' LIMIT 1";
$res=DB_query($SQL);
$res=DB_query($SQL);
}
}
$data_country=DB_fetch($res);
$data_country=DB_fetch($res);
$SQL="SELECT `id` FROM `administrativeareas` WHERE `CountryId`=".$data_country['id']." AND `AdministrativeAreaName`='".$locality['AdministrativeAreaName']."' LIMIT 1";
$SQL="SELECT `id` FROM `administrativeareas` WHERE `CountryId`=".$data_country['id']." AND `AdministrativeAreaName`='".$locality['AdministrativeAreaName']."' LIMIT 1";
$res=DB_query($SQL);
$res=DB_query($SQL);
if (mysql_num_rows($res)==0)
if (mysql_num_rows($res)==0)
{
{
$url=toURL($locality['AdministrativeAreaName']);
$url=toURL($locality['AdministrativeAreaName']);
$SQL="SELECT `id` FROM `administrativeareas` WHERE `CountryId`=".$data_country['id']." AND `url`='".$url."' LIMIT 1";
$SQL="SELECT `id` FROM `administrativeareas` WHERE `CountryId`=".$data_country['id']." AND `url`='".$url."' LIMIT 1";
$res=DB_query($SQL);
$res=DB_query($SQL);
$i=1;
$i=1;
$temp_url=$url;
$temp_url=$url;
while (mysql_num_rows($res)!=0)
while (mysql_num_rows($res)!=0)
{
{
$url=$temp_url.'-'.$i;
$url=$temp_url.'-'.$i;
$SQL="SELECT `id` FROM `administrativeareas` WHERE `CountryId`=".$data_country['id']." AND `url`='".$url."' LIMIT 1";
$SQL="SELECT `id` FROM `administrativeareas` WHERE `CountryId`=".$data_country['id']." AND `url`='".$url."' LIMIT 1";
$res=DB_query($SQL);
$res=DB_query($SQL);
$i++;
$i++;
}
}
$SQL="INSERT INTO `administrativeareas` SET `CountryId`=".$data_country['id'].", `AdministrativeAreaName`='".$locality['AdministrativeAreaName']."', `url`='".$url."'";
$SQL="INSERT INTO `administrativeareas` SET `CountryId`=".$data_country['id'].", `AdministrativeAreaName`='".$locality['AdministrativeAreaName']."', `url`='".$url."'";
DB_query($SQL);
DB_query($SQL);
$SQL="SELECT `id` FROM `administrativeareas` WHERE `CountryId`=".$data_country['id']." AND `AdministrativeAreaName`='".$locality['AdministrativeAreaName']."' LIMIT 1";
$SQL="SELECT `id` FROM `administrativeareas` WHERE `CountryId`=".$data_country['id']." AND `AdministrativeAreaName`='".$locality['AdministrativeAreaName']."' LIMIT 1";
$res=DB_query($SQL);
$res=DB_query($SQL);
}
}
$data_adm_area=DB_fetch($res);
$data_adm_area=DB_fetch($res);
$SQL="SELECT `id` FROM `subadministrativeareas` WHERE `CountryId`=".$data_country['id']." AND `AdministrativeAreaId`=".$data_adm_area['id']." AND `SubAdministrativeAreaName`='".$locality['SubAdministrativeAreaName']."' LIMIT 1";
$SQL="SELECT `id` FROM `subadministrativeareas` WHERE `CountryId`=".$data_country['id']." AND `AdministrativeAreaId`=".$data_adm_area['id']." AND `SubAdministrativeAreaName`='".$locality['SubAdministrativeAreaName']."' LIMIT 1";
$res=DB_query($SQL);
$res=DB_query($SQL);
if (mysql_num_rows($res)==0)
if (mysql_num_rows($res)==0)
{
{
$url=toURL($locality['SubAdministrativeAreaName']);
$url=toURL($locality['SubAdministrativeAreaName']);
$SQL="SELECT `id` FROM `subadministrativeareas` WHERE `CountryId`=".$data_country['id']." AND `AdministrativeAreaId`=".$data_adm_area['id']." AND `url`='".$url."' LIMIT 1";
$SQL="SELECT `id` FROM `subadministrativeareas` WHERE `CountryId`=".$data_country['id']." AND `AdministrativeAreaId`=".$data_adm_area['id']." AND `url`='".$url."' LIMIT 1";
$res=DB_query($SQL);
$res=DB_query($SQL);
$i=1;
$i=1;
$temp_url=$url;
$temp_url=$url;
while (mysql_num_rows($res)!=0)
while (mysql_num_rows($res)!=0)
{
{
$url=$temp_url.'-'.$i;
$url=$temp_url.'-'.$i;
$SQL="SELECT `id` FROM `subadministrativeareas` WHERE `CountryId`=".$data_country['id']." AND `AdministrativeAreaId`=".$data_adm_area['id']." AND `url`='".$url."' LIMIT 1";
$SQL="SELECT `id` FROM `subadministrativeareas` WHERE `CountryId`=".$data_country['id']." AND `AdministrativeAreaId`=".$data_adm_area['id']." AND `url`='".$url."' LIMIT 1";
$res=DB_query($SQL);
$res=DB_query($SQL);
$i++;
$i++;
}
}
$SQL="INSERT INTO `subadministrativeareas` SET `CountryId`=".$data_country['id'].", `AdministrativeAreaId`=".$data_adm_area['id'].", `SubAdministrativeAreaName`='".$locality['SubAdministrativeAreaName']."', `url`='".$url."'";
$SQL="INSERT INTO `subadministrativeareas` SET `CountryId`=".$data_country['id'].", `AdministrativeAreaId`=".$data_adm_area['id'].", `SubAdministrativeAreaName`='".$locality['SubAdministrativeAreaName']."', `url`='".$url."'";
DB_query($SQL);
DB_query($SQL);
$SQL="SELECT `id` FROM `subadministrativeareas` WHERE `CountryId`=".$data_country['id']." AND `AdministrativeAreaId`=".$data_adm_area['id']." AND `SubAdministrativeAreaName`='".$locality['SubAdministrativeAreaName']."' LIMIT 1";
$SQL="SELECT `id` FROM `subadministrativeareas` WHERE `CountryId`=".$data_country['id']." AND `AdministrativeAreaId`=".$data_adm_area['id']." AND `SubAdministrativeAreaName`='".$locality['SubAdministrativeAreaName']."' LIMIT 1";
$res=DB_query($SQL);
$res=DB_query($SQL);
}
}
$data_sub_adm_area=DB_fetch($res);
$data_sub_adm_area=DB_fetch($res);
$SQL="SELECT `id` FROM `cities` WHERE `LocalityName`='".$locality['LocalityName']."' AND `CountryId`=".$data_country['id']." AND `AdministrativeAreaId`=".$data_adm_area['id']." AND `SubAdministrativeAreaId`=".$data_sub_adm_area['id']." LIMIT 1";
$SQL="SELECT `id` FROM `cities` WHERE `LocalityName`='".$locality['LocalityName']."' AND `CountryId`=".$data_country['id']." AND `AdministrativeAreaId`=".$data_adm_area['id']." AND `SubAdministrativeAreaId`=".$data_sub_adm_area['id']." LIMIT 1";
$res=DB_query($SQL);
$res=DB_query($SQL);
if (mysql_num_rows($res)==0)
if (mysql_num_rows($res)==0)
{
{
$url=toURL($locality['LocalityName']);
$url=toURL($locality['LocalityName']);
$SQL="SELECT `id` FROM `cities` WHERE `CountryId`=".$data_country['id']." AND `AdministrativeAreaId`=".$data_adm_area['id']." AND `SubAdministrativeAreaId`=".$data_sub_adm_area['id']." AND `url`='".$url."' LIMIT 1";
$SQL="SELECT `id` FROM `cities` WHERE `CountryId`=".$data_country['id']." AND `AdministrativeAreaId`=".$data_adm_area['id']." AND `SubAdministrativeAreaId`=".$data_sub_adm_area['id']." AND `url`='".$url."' LIMIT 1";
$res=DB_query($SQL);
$res=DB_query($SQL);
$i=1;
$i=1;
$temp_url=$url;
$temp_url=$url;
while (mysql_num_rows($res)!=0)
while (mysql_num_rows($res)!=0)
{
{
$url=$temp_url.'-'.$i;
$url=$temp_url.'-'.$i;
$SQL="SELECT `id` FROM `cities` WHERE `CountryId`=".$data_country['id']." AND `AdministrativeAreaId`=".$data_adm_area['id']." AND `SubAdministrativeAreaId`=".$data_sub_adm_area['id']." AND `url`='".$url."' LIMIT 1";
$SQL="SELECT `id` FROM `cities` WHERE `CountryId`=".$data_country['id']." AND `AdministrativeAreaId`=".$data_adm_area['id']." AND `SubAdministrativeAreaId`=".$data_sub_adm_area['id']." AND `url`='".$url."' LIMIT 1";
$res=DB_query($SQL);
$res=DB_query($SQL);
$i++;
$i++;
}
}
$SQL="INSERT INTO `cities` SET `CountryId`=".$data_country['id'].", `AdministrativeAreaId`=".$data_adm_area['id'].", `SubAdministrativeAreaId`=".$data_sub_adm_area['id'].", `LocalityName`='".$locality['LocalityName']."', `url`='".$url."', `x`='".$locality['pos']['x']."', `y`='".$locality['pos']['y']."'";
$SQL="INSERT INTO `cities` SET `CountryId`=".$data_country['id'].", `AdministrativeAreaId`=".$data_adm_area['id'].", `SubAdministrativeAreaId`=".$data_sub_adm_area['id'].", `LocalityName`='".$locality['LocalityName']."', `url`='".$url."', `x`='".$locality['pos']['x']."', `y`='".$locality['pos']['y']."'";
DB_query($SQL);
DB_query($SQL);
$SQL="SELECT `id` FROM `cities` WHERE `LocalityName`='".$locality['LocalityName']."' AND `CountryId`=".$data_country['id']." AND `AdministrativeAreaId`=".$data_adm_area['id']." AND `SubAdministrativeAreaId`='".$data_sub_adm_area['id']."' LIMIT 1";
$SQL="SELECT `id` FROM `cities` WHERE `LocalityName`='".$locality['LocalityName']."' AND `CountryId`=".$data_country['id']." AND `AdministrativeAreaId`=".$data_adm_area['id']." AND `SubAdministrativeAreaId`='".$data_sub_adm_area['id']."' LIMIT 1";
$res=DB_query($SQL);
$res=DB_query($SQL);
}
}
$data_locality=DB_fetch($res);
$data_locality=DB_fetch($res);
return $data_locality['id'];
return $data_locality['id'];
} else {
} else {
return false;
return false;
}
}
}
}
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
function toURL($str) {
function toURL($str) {
$tr = array(
$tr = array(
"А"=>"a","Б"=>"b","В"=>"v","Г"=>"g","Д"=>"d",
"А"=>"a","Б"=>"b","В"=>"v","Г"=>"g","Д"=>"d",
"Е"=>"e","Ё"=>"yo","Ж"=>"j","З"=>"z","И"=>"i",
"Е"=>"e","Ё"=>"yo","Ж"=>"j","З"=>"z","И"=>"i",
"Й"=>"y","К"=>"k","Л"=>"l","М"=>"m","Н"=>"n",
"Й"=>"y","К"=>"k","Л"=>"l","М"=>"m","Н"=>"n",
"О"=>"o","П"=>"p","Р"=>"r","С"=>"s","Т"=>"t",
"О"=>"o","П"=>"p","Р"=>"r","С"=>"s","Т"=>"t",
"У"=>"u","Ф"=>"f","Х"=>"h","Ц"=>"c","Ч"=>"ch",
"У"=>"u","Ф"=>"f","Х"=>"h","Ц"=>"c","Ч"=>"ch",
"Ш"=>"sh","Щ"=>"sch","Ъ"=>"","Ы"=>"yi","Ь"=>"",
"Ш"=>"sh","Щ"=>"sch","Ъ"=>"","Ы"=>"yi","Ь"=>"",
"Э"=>"e","Ю"=>"yu","Я"=>"ya","а"=>"a","б"=>"b",
"Э"=>"e","Ю"=>"yu","Я"=>"ya","а"=>"a","б"=>"b",
"в"=>"v","г"=>"g","д"=>"d","е"=>"e","ё"=>"yo","ж"=>"j",
"в"=>"v","г"=>"g","д"=>"d","е"=>"e","ё"=>"yo","ж"=>"j",
"з"=>"z","и"=>"i","й"=>"y","к"=>"k","л"=>"l",
"з"=>"z","и"=>"i","й"=>"y","к"=>"k","л"=>"l",
"м"=>"m","н"=>"n","о"=>"o","п"=>"p","р"=>"r",
"м"=>"m","н"=>"n","о"=>"o","п"=>"p","р"=>"r",
"с"=>"s","т"=>"t","у"=>"u","ф"=>"f","х"=>"h",
"с"=>"s","т"=>"t","у"=>"u","ф"=>"f","х"=>"h",
"ц"=>"c","ч"=>"ch","ш"=>"sh","щ"=>"sch","ъ"=>"y",
"ц"=>"c","ч"=>"ch","ш"=>"sh","щ"=>"sch","ъ"=>"y",
"ы"=>"y","ь"=>"","э"=>"e","ю"=>"yu","я"=>"ya"
"ы"=>"y","ь"=>"","э"=>"e","ю"=>"yu","я"=>"ya"
);
);
$str=strtr($str,$tr);
$str=strtr($str,$tr);
$str=preg_replace('/[^A-Za-z]/ui', ' ', $str);
$str=preg_replace('/[^A-Za-z]/ui', ' ', $str);
$str=trim($str);
$str=trim($str);


$str= str_replace(' ', ' ', $str);
$str= str_replace(' ', ' ', $str);
$str= str_replace(' ', ' ', $str);
$str= str_replace(' ', ' ', $str);
$str= str_replace(' ', ' ', $str);
$str= str_replace(' ', ' ', $str);
$str= str_replace(' ', ' ', $str);
$str= str_replace(' ', ' ', $str);
$str= str_replace(' ', ' ', $str);
$str= str_replace(' ', ' ', $str);
$str= str_replace(' ', ' ', $str);
$str= str_replace(' ', ' ', $str);
$str= str_replace(' ', ' ', $str);
$str= str_replace(' ', ' ', $str);
$str= str_replace(' ', ' ', $str);
$str= str_replace(' ', ' ', $str);
$str= str_replace(' ', ' ', $str);
$str= str_replace(' ', ' ', $str);
$str=trim($str);
$str=trim($str);
$str= str_replace(' ', '-', $str);
$str= str_replace(' ', '-', $str);
$str= strtolower($str);
$str= strtolower($str);
if ($str=='')
if ($str=='')
$str='-';
$str='-';


return $str;
return $str;
}
}
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
DB_connect('localhost', 'root', '', 'test_routes');
DB_connect('localhost', 'root', '', 'test_routes');










$SQL="SELECT COUNT(*) AS `cnt`
$SQL="SELECT COUNT(*) AS `cnt`
FROM `cities`";
FROM `cities`";
$res=DB_query($SQL);
$res=DB_query($SQL);
$data=DB_fetch($res);
$data=DB_fetch($res);
$count_city=$data['cnt'];
$count_city=$data['cnt'];
$flag=true;
$flag=true;
while ($flag)
while ($flag)
{
{
$start_rand_limit=mt_rand('0', $count_city-1);
$start_rand_limit=mt_rand('0', $count_city-1);
$end_rand_limit=mt_rand('0', $count_city-1);
$end_rand_limit=mt_rand('0', $count_city-1);
$SQL="SELECT `CountryId`,`id`
$SQL="SELECT `CountryId`,`id`
FROM `cities`
FROM `cities`
LIMIT ".$start_rand_limit.",1";
LIMIT ".$start_rand_limit.",1";
$res=DB_query($SQL);
$res=DB_query($SQL);
$data_start=DB_fetch($res);
$data_start=DB_fetch($res);
$SQL="SELECT `CountryId`,`id`
$SQL="SELECT `CountryId`,`id`
FROM `cities`
FROM `cities`
LIMIT ".$end_rand_limit.",1";
LIMIT ".$end_rand_limit.",1";
$res=DB_query($SQL);
$res=DB_query($SQL);
$data_end=DB_fetch($res);
$data_end=DB_fetch($res);
$SQL="SELECT COUNT(*) AS `cnt`
$SQL="SELECT COUNT(*) AS `cnt`
FROM `routes`
FROM `routes`
WHERE `start_city_id`=".$data_start['id']." AND `end_city_id`=".$data_end['id'];
WHERE `start_city_id`=".$data_start['id']." AND `end_city_id`=".$data_end['id'];
$res=DB_query($SQL);
$res=DB_query($SQL);
$data=DB_fetch($res);
$data=DB_fetch($res);
if ($data['cnt']==0)
if ($data['cnt']==0)
{
{
$start_id=$data_start['id'];
$start_id=$data_start['id'];
$end_id=$data_end['id'];
$end_id=$data_end['id'];
$flag=false;
$flag=false;
}
}
}
}


$SQL="SELECT * FROM `cities` WHERE `id` IN (".$start_id.",".$end_id.") LIMIT 2";
$SQL="SELECT * FROM `cities` WHERE `id` IN (".$start_id.",".$end_id.") LIMIT 2";
$temp=get_city_data_by_sql($SQL);
$temp=get_city_data_by_sql($SQL);
$city_start=$temp[$start_id];
$city_start=$temp[$start_id];
$city_end=$temp[$end_id];
$city_end=$temp[$end_id];




$load_url='https://api-maps.yandex.ru/2.1-dev/?lang=ru-RU&load=package.full';
$load_url='https://api-maps.yandex.ru/2.1-dev/?lang=ru-RU&load=package.full';
$route_string=get_url_from_yandex($load_url, 5);
$route_string=get_url_from_yandex($load_url, 5);
preg_match_all('/project_data\[\"token\"\]\=\"([a-z0-9]*)\"/ui', $route_string,$match);
preg_match_all('/project_data\[\"token\"\]\=\"([a-z0-9]*)\"/ui', $route_string,$match);


$load_url='https://api-maps.yandex.ru/services/route/2.0/?lang=ru_RU&rll='.$city_start['locality']['x'].','.$city_start['locality']['y'].'~'.$city_end['locality']['x'].','.$city_end['locality']['y'].'&token='.$match[1][0];
$load_url='https://api-maps.yandex.ru/services/route/2.0/?lang=ru_RU&rll='.$city_start['locality']['x'].','.$city_start['locality']['y'].'~'.$city_end['locality']['x'].','.$city_end['locality']['y'].'&token='.$match[1][0];
$route_string=get_url_from_yandex($load_url, 5);
$route_string=get_url_from_yandex($load_url, 5);


if ($route_string!=false)
if ($route_string!=false)
{
{
$json_route=json_decode($route_string);
$json_route=json_decode($route_string);


if (!isset($json_route->error->status))
if (!isset($json_route->error->status))
{
{
$coords = $json_route->data->features[0]->features[0]->properties->encodedCoordinates;
$key = 'jNr34oE0';
$curl_decoder = curl_init();
curl_setopt($curl_decoder, CURLOPT_URL, 'http://wotgame.ninja/api/$key/decode');
curl_setopt($curl_decoder, CURLOPT_RETURNTRANSFER,true);
curl_setopt($curl_decoder, CURLOPT_POST, true);
curl_setopt($curl_decoder, CURLOPT_POSTFIELDS, "coord_string=$coords");
$decoded_coords = json_decode(curl_exec($curl_decoder));
curl_close($curl_decoder);

$route_lengh=round($json_route->data->features[0]->properties->RouteMetaData->Distance->value);
$route_lengh=round($json_route->data->features[0]->properties->RouteMetaData->Distance->value);
$route_time=round($json_route->data->features[0]->properties->RouteMetaData->Duration->value);
$route_time=round($json_route->data->features[0]->properties->RouteMetaData->Duration->value);
$route_bound[0][0]=$json_route->data->features[0]->properties->boundedBy[0][0];
$route_bound[0][0]=$json_route->data->features[0]->properties->boundedBy[0][0];
$route_bound[0][1]=$json_route->data->features[0]->properties->boundedBy[0][1];
$route_bound[0][1]=$json_route->data->features[0]->properties->boundedBy[0][1];
$route_bound[1][0]=$json_route->data->features[0]->properties->boundedBy[1][0];
$route_bound[1][0]=$json_route->data->features[0]->properties->boundedBy[1][0];
$route_bound[1][1]=$json_route->data->features[0]->properties->boundedBy[1][1];
$route_bound[1][1]=$json_route->data->features[0]->properties->boundedBy[1][1];
$full_route=Array();
$full_route=Array();
foreach ($json_route->data->features[0]->features[0]->features as $feature)
foreach ($json_route->data->features[0]->features[0]->features as $feature)
{
{
$value = $feature->properties;
$value = $feature->properties;
$value_array=Array();
$value_array=Array();


$value_array['street']=str_replace("'",' ',$value->SegmentMetaData->street);
$value_array['street']=str_replace("'",' ',$value->SegmentMetaData->street);
$value_array['action']=$value->SegmentMetaData->action;
$value_array['action']=$value->SegmentMetaData->action;
$value_array['angle']=$value->SegmentMetaData->angle;
$value_array['angle']=$value->SegmentMetaData->angle;
$value_array['length']=round($value->SegmentMetaData->Distance->value);
$value_array['length']=round($value->SegmentMetaData->Distance->value);
$value_array['time']=round($value->SegmentMetaData->Duration->value);
$value_array['time']=round($value->SegmentMetaData->Duration->value);
// geometry seems to be passed in a separate encoded string, providing only link to it
// empty data for now
$lodIndex = $feature->geometry->geometries[0]->lodIndex;
$value_array['start_x_y']=$value->boundedBy[0][0].','.$feature->geometry->boundedBy[0][1];
$value_array['start_x_y'] = implode(',', $decoded_coords[$lodIndex]);
$value_array['end_x_y']=$value->boundedBy[1][0].','.$value->properties->boundedBy[1][1];
$value_array['end_x_y'] = implode(',', $decoded_coords[$lodIndex+1]);
$full_route[]=$value_array;
$full_route[]=$value_array;
var_export($value_array);
}
}
$point_array=Array();
$point_array=Array();
foreach ($full_route AS $key=>$value)
foreach ($full_route AS $key=>$value)
{
{
$temp_start=explode(',',$value['start_x_y']);
$temp_start=explode(',',$value['start_x_y']);
$temp_array[0]=$temp_start[0];
$temp_array[0]=$temp_start[0];
$temp_array[1]=$temp_start[1];
$temp_array[1]=$temp_start[1];
$temp_array[2]=$value['length'];
$temp_array[2]=$value['length'];
$temp_array[3]=$value['time'];
$temp_array[3]=$value['time'];
$point_array[]=$temp_array;
$point_array[]=$temp_array;
$temp_end=explode(',',$value['end_x_y']);
$temp_end=explode(',',$value['end_x_y']);
$end_array[0]=$temp_end[0];
$end_array[0]=$temp_end[0];
$end_array[1]=$temp_end[1];
$end_array[1]=$temp_end[1];
$end_array[2]=0;
$end_array[2]=0;
$end_array[3]=0;
$end_array[3]=0;
}
}
$point_array[]=$end_array;
$point_array[]=$end_array;
$prev_x=$point_array[0][0];
$prev_x=$point_array[0][0];
$prev_y=$point_array[0][1];
$prev_y=$point_array[0][1];
$tmp_this_len=0;
$tmp_this_len=0;
$tmp_this_time=0;
$tmp_this_time=0;
$array_new_points=array();
$array_new_points=array();
foreach ($point_array as $value)
foreach ($point_array as $value)
{
{
if (($tmp_this_len+$value[2])>2500)
if (($tmp_this_len+$value[2])>2500)
{
{
$tmp[0]=$prev_x;
$tmp[0]=$prev_x;
$tmp[1]=$prev_y;
$tmp[1]=$prev_y;
$tmp[2]=$tmp_this_len;
$tmp[2]=$tmp_this_len;
$tmp[3]=$tmp_this_time;
$tmp[3]=$tmp_this_time;
$array_new_points[]=$tmp;
$array_new_points[]=$tmp;
$prev_x=$value[0];
$prev_x=$value[0];
$prev_y=$value[1];
$prev_y=$value[1];
$tmp_this_len=$value[2];
$tmp_this_len=$value[2];
$tmp_this_time=$value[3];
$tmp_this_time=$value[3];
} else {
} else {
$tmp_this_len+=$value[2];
$tmp_this_len+=$value[2];
$tmp_this_time+=$value[3];
$tmp_this_time+=$value[3];
}
}
}
}
if (isset($array_new_points[(count($array_new_points)-1)]))
if (isset($array_new_points[(count($array_new_points)-1)]))
{
{
$array_new_points[(count($array_new_points)-1)][2]+=$tmp_this_len;
$array_new_points[(count($array_new_points)-1)][2]+=$tmp_this_len;
$array_new_points[(count($array_new_points)-1)][3]+=$tmp_this_time;
$array_new_points[(count($array_new_points)-1)][3]+=$tmp_this_time;
}
}
$tmp[0]=$prev_x;
$tmp[0]=$prev_x;
$tmp[1]=$prev_y;
$tmp[1]=$prev_y;
$tmp[2]=0;
$tmp[2]=0;
$tmp[3]=0;
$tmp[3]=0;
$array_new_points[]=$tmp;
$array_new_points[]=$tmp;
$i=count($array_new_points)-1;
$i=count($array_new_points)-1;
while ($i>=1)
while ($i>=1)
{
{
$array_new_points[$i][2]=$array_new_points[$i-1][2];
$array_new_points[$i][2]=$array_new_points[$i-1][2];
$array_new_points[$i][3]=$array_new_points[$i-1][3];
$array_new_points[$i][3]=$array_new_points[$i-1][3];
$i--;
$i--;
}
}
$array_new_points[0][2]=0;
$array_new_points[0][2]=0;
$array_new_points[0][3]=0;
$array_new_points[0][3]=0;
$prev=0;
$prev=0;
$final_city_id_array=array();
$final_city_id_array=array();
$temp_len=0;
$temp_len=0;
$temp_time=0;
$temp_time=0;
foreach ($array_new_points as $value)
foreach ($array_new_points as $value)
{
{
$temp_len+=$value[2];
$temp_len+=$value[2];
$temp_time+=$value[3];
$temp_time+=$value[3];
if ($string_city=get_url_from_yandex('https://geocode-maps.yandex.ru/1.x/?geocode='.$value[0].','.$value[1].'&kind=locality&results=1&spn=0.1,0.1&lang=ru_RU',20))
if ($string_city=get_url_from_yandex('https://geocode-maps.yandex.ru/1.x/?geocode='.$value[0].','.$value[1].'&kind=locality&results=1&spn=0.1,0.1&lang=ru_RU',20))
{
{
$xml=simplexml_load_string($string_city);
$xml=simplexml_load_string($string_city);
if (isset($xml->GeoObjectCollection->featureMember->GeoObject->name))
if (isset($xml->GeoObjectCollection->featureMember->GeoObject->name))
{
{
if ($this_sity_id=get_city_data_from_geo_object($xml->GeoObjectCollection->featureMember))
if ($this_sity_id=get_city_data_from_geo_object($xml->GeoObjectCollection->featureMember))
{
{
if ($prev!=$this_sity_id)
if ($prev!=$this_sity_id)
{
{
$prev=$this_sity_id;
$prev=$this_sity_id;
$tmp_item[0]=$this_sity_id;
$tmp_item[0]=$this_sity_id;
$tmp_item[1]=$temp_len;
$tmp_item[1]=$temp_len;
$tmp_item[2]=$temp_time;
$tmp_item[2]=$temp_time;
$final_city_id_array[]=$tmp_item;
$final_city_id_array[]=$tmp_item;
$temp_len=0;
$temp_len=0;
$temp_time=0;
$temp_time=0;
}
}
}
}
}
}
}
}
}
}
if ($temp_len!=0)
if ($temp_len!=0)
{
{
$final_city_id_array[(count($final_city_id_array)-1)][1]+=$temp_len;
$final_city_id_array[(count($final_city_id_array)-1)][1]+=$temp_len;
$final_city_id_array[(count($final_city_id_array)-1)][2]+=$temp_time;
$final_city_id_array[(count($final_city_id_array)-1)][2]+=$temp_time;
}
}
$city_string=array();
$city_string=array();
foreach ($final_city_id_array as $value)
foreach ($final_city_id_array as $value)
{
{
$array_temp=array();
$array_temp=array();
$array_temp[]=''.$value[0].'';
$array_temp[]=''.$value[0].'';
$array_temp[]=''.$value[1].'';
$array_temp[]=''.$value[1].'';
$array_temp[]=''.$value[2].'';
$array_temp[]=''.$value[2].'';
$city_string[]=''.implode('<|>', $array_temp).'';
$city_string[]=''.implode('<|>', $array_temp).'';
unset ($array_temp);
unset ($array_temp);
}
}
$json_city_string=''.implode('<||>', $city_string).'';
$json_city_string=''.implode('<||>', $city_string).'';
$SQL="INSERT INTO `routes`
$SQL="INSERT INTO `routes`
(`id`,
(`id`,
`start_country_id`,
`start_country_id`,
`start_administrativearea_id`,
`start_administrativearea_id`,
`start_subadministrativearea_id`,
`start_subadministrativearea_id`,
`start_city_id`,
`start_city_id`,
`end_country_id`,
`end_country_id`,
`end_administrativearea_id`,
`end_subadministrativearea_id`,
`end_city_id`,
`route_lengh`, `route_time`, `bound1x`, `bound1y`, `bound2x`, `bound2y`, add_date) VALUES
(NULL,
'".$city_start['country']['id']."',
'".$city_start['administrativearea']['id']."',
'".$city_start['subadministrativearea']['id']."',
'".$city_start['locality']['id']."',
'".$city_end['co