За последние 24 часа нас посетили 24876 программистов и 1744 робота. Сейчас ищут 845 программистов ...

Json / Массив.

Тема в разделе "PHP для новичков", создана пользователем q0b3rMAN, 15 дек 2012.

  1. q0b3rMAN

    q0b3rMAN Активный пользователь

    С нами с:
    11 июн 2011
    Сообщения:
    142
    Симпатии:
    0
    В общем ребят, вот была задача: viewtopic.php?f=13&t=42956
    Решена, но все же пришлось решать немного по другому.

    Геокодирование идет с Яндекс API, и уже передается на 2GIS.
    В общем вопрос такой:
    2GIS что-бы вывела карту в определеном месте использует такой запрос (к примеру):
    <image src="http://static.maps.api.2gis.ru/1.0?center=82.911182,55.058883&zoom=15&size=500,350">
    Где 82.911182 - Долгота, 55.058883 - ширина.

    НО! Судя по коду ниже, видно что идет геокодирование с яндекса, и выводится картинкой с 2гиса...
    Но тут трабла, 2GIS требует отправлять ему запрос вида: center=82.911182,55.058883 (тоесть долгота и ширина через запятую), а яндекс возвращает без запятой...надо в общем между долготой и шириной, которая выводится тут: echo $response->response->GeoObjectCollection->featureMember[0]->GeoObject->Point->pos; поставить запятую. Как реализовать? Я думаю тут ничего сложного не будет же? =))


    Код (Text):
    1. // Выборка данных из таблицы
    2. $params = array(
    3.     'geocode' => 'Владивосток', // адрес
    4.     'format'  => 'json',                          // формат ответа
    5.     'results' => 1,                               // количество выводимых результатов
    6.     'key'     => '.....АПИ КЛЮЧ ЯНДЕКСА',
    7. );
    8. $response = json_decode(file_get_contents('http://geocode-maps.yandex.ru/1.x/?' . http_build_query($params, '', '&')));
    9.  
    10. if ($response->response->GeoObjectCollection->metaDataProperty->GeocoderResponseMetaData->found > 0)
    11. {
    12.     //echo "<image src='http://static.maps.api.2gis.ru/1.0?center=";
    13.     echo $response->response->GeoObjectCollection->featureMember[0]->GeoObject->Point->pos;
    14.     //echo "&zoom=15&size=500,350'>";
    15. }
    16. else
    17. {
    18.     echo 'Ничего не найдено';
    19. }
    Добавлено спустя 18 минут 56 секунд:
    Есть идея, $response = str_replace(' ', ',', $response);

    Как можно реализовать?

    Добавлено спустя 3 минуты 50 секунд:
    Мде, ожидал хоть один ответ. Проблема решена.
    Код (Text):
    1. $new = str_replace(' ', ',', $response->response->GeoObjectCollection->featureMember[0]->GeoObject->Point->pos);
    2. echo $new;
     
  2. Invision

    Invision Активный пользователь

    С нами с:
    26 фев 2009
    Сообщения:
    1.437
    Симпатии:
    1
    Адрес:
    Томск
    Вы посидите, подумайте, если долгое время проблема не решается, сядьте и понятно объясните, что у вас не получается.