Skip to content

Instantly share code, notes, and snippets.

@shectermen
Created June 29, 2015 16:53
Show Gist options
  • Save shectermen/590eb0409ef904c8ed7d to your computer and use it in GitHub Desktop.
Save shectermen/590eb0409ef904c8ed7d to your computer and use it in GitHub Desktop.
<?php
$tv = $modx->getObject('modTemplateVar',array('name'=>'street')); // Получаем значение всех ТВ
$adres_value = $tv->getValue($id); // получаем id документа в котором находимся
$adres_output = $tv->renderOutput($id);// рендерим содержимое ТВ
$adress1=urlencode($adres_output);
$url="http://geocode-maps.yandex.ru/1.x/?geocode=".$adress1."&kind=metro&results=200";
$content=file_get_contents($url); // получаем страницу с координатами
preg_match('/<pos>(.*?)<\/pos>/',$content,$point); // вырезаем нужные нам координаты
$coordinaty=explode(' ',trim(strip_tags($point[1])));
//координаты объекта
$coords_xy = $coordinaty[0].','.$coordinaty[1];
$metro ="http://geocode-maps.yandex.ru/1.x/?geocode=".$coords_xy."&kind=metro&results=200"; // тут мы формируем http запрос на сервер для получения xml с ответом с метро
$metro_xml = file_get_contents($metro);
preg_match('/<PremiseName>(.*?)<\/PremiseName>/',$metro_xml,$metro_point); // вырезаем нужные нам координаты для метро
$metro_coord=explode(' ',trim(strip_tags($metro_point[1])));
$okrug ="http://geocode-maps.yandex.ru/1.x/?geocode=".$coords_xy."&kind=district&results=1"; // тут мы формируем http запрос на сервер для получения xml с ответом с округом
$okrug_xml = file_get_contents($okrug);
preg_match('/<DependentLocalityName>(.*?)<\/DependentLocalityName>/',$okrug_xml,$okrug_point); // вырезаем нужные нам координаты для Округов
$okrug_coord=explode(' ',trim(strip_tags($okrug_point[1])));
$resource->setTVValue('okrug',$okrug_coord[0].' '.$okrug_coord[1].' '.$okrug_coord[2] ); // записываем значение округа в ТВ шку
$resource->setTVValue('metro',$metro_coord[1].' '.$metro_coord[2].' '.$metro_coord[3] );// записываем метро в Твшку
$resource->setTVValue('coords', $coords_xy );// записываем координаты в Твшку
$resource->save();
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment