Как настроить карту, если страны заменили на регионы?

Вопросы и ответы по изменению функционала, смене дизайна, переносу сайта и т.п.

Модераторы: Xpycm, Koduc

Правила форума
ВНИМАНИЕ! Форум не является средством гарантированной поддержки клиентов и пользователей. Поэтому на быстрый ответ тут рассчитывать не нужно, как и на ответ вообще. Сотрудники отвечают по мере своих возможностей.

На форуме действует ограничение в 3 сообщения / сутки.
Если Вы хотите сказать "спасибо", то воспользуйтесь функцией "Повысить репутацию" - зелёная иконка "плюс" под ником ответившего.

Как настроить карту, если страны заменили на регионы?

Сообщение sdelkadrom » 18 окт 2016, 14:08

Все объекты находятся в одной стране. Поэтому Страны поменяли на Регионы. Получилась следующая структура: Регины=> Районы (городские округа) => Города (населенные пункты). В результате - появилась проблема с маркером карты. Какие нужно внести изменения, чтобы маркер работал правильно? Можно ли «жестко привязать» маркер к одной стране (Россия) и как это сделать?
sdelkadrom
Гражданин
Гражданин
 
Сообщения: 77
Зарегистрирован: 02 июн 2016, 14:25
Очки репутации: 5

Re: Как настроить карту, если страны заменили на регионы?

Сообщение andipas » 18 окт 2016, 14:22

В чем заключается проблема? Неверно выставляется маркер?

Код отвечающий за автоматическое определение координат по адресу, после сохранения, находится в файле protected/helpers/HApartment.php
Код: Выделить всё

        $city 
= "";
        if (issetModule('location')) {
            $city .= $ad->locCountry ? $ad->locCountry->getStrByLang('name') : "";
            $city .= ($city && $ad->locCity) ? ", " : "";
            $city .= $ad->locCity ? $ad->locCity->getStrByLang('name') : "";
        } else
            $city 
= $ad->city ? $ad->city->getStrByLang('name') : "";

        // data
        if(($ad->address && $city) && (param('useGoogleMap', 1) || param('useYandexMap', 1) || param('useOSMMap', 1))){
            if (!$ad->lat && !$ad->lng) { # уже есть
                $coords = Geocoding::getCoordsByAddress($ad->address, $city);

                if(isset($coords['lat']) && isset($coords['lng'])){
                    $ad->lat = $coords['lat'];
                    $ad->lng = $coords['lng'];
                }
            }
        }


попробуйте вначале задать

Код: Выделить всё
$city = "Россия, ";
Часто задаваемые вопросы. Для правки файлов notepad++, netbeans, phpStorm. Для правки CSS firebug.
Аватара пользователя
andipas
Разработчик
Разработчик
 
Сообщения: 695
Зарегистрирован: 28 дек 2011, 22:37
Очки репутации: 30


Вернуться в Вопросы и помощь по изменениям

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 4

cron