LiveInternetMail.ru
Форум русской поддержки Joomla!® CMS
26.05.2012, 22:30:34 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
   
   Начало   Поиск Joomla 1.7 FAQ Joomla 1.5 FAQ Joomla 1.0 FAQ Правила форума Новости Joomla Войти Регистрация Помощь  
Страниц: [1]   Вниз
  Добавить закладку  |  Печать  
Автор Тема: Google map в SOBI2  (Прочитано 1922 раз)
0 Пользователей и 1 Гость смотрят эту тему.
devul
Давно я тут
****

Репутация: +16/-0
Offline Offline

Сообщений: 319



« : 19.11.2010, 19:16:22 »

 Вот вроде бы хороший компонент SOBI2 но кривоватый он какойто.
Возникла проблема с картой.
Использую  версию RC 2.9.2.3   на Joomla 1.0.15
В SOBI2 встроена поддержка Google карты но уж как то криво встроена.
При добавлении записи по умолчнанию нужно тупо вбивать координаты и карта не отображается.
Используя руководство с оффсайта можно добавить код карты в новое поле и тогда появится сама карта но вот отмечать на ней уж очень неудобно ибо при нажатии на карту маркер не ставится а ток пишутся координаты в поля.. а пользователь остается в недоумении..
Решил я исправить это и отредактировал код, при нажатии маркер появляется.. координаты пишутся но если кликнуть в другом месте создается еще один маркер и тд.. вот собсна вопрос: подскажите как ограничить каличество маркеров чтоб при последующих нажатия маркер перемещался а не создавался новый?

Код:
Код:
<script src="http://maps.google.com/maps?file=api&v=1&key={googleApiKey}" type="text/javascript"></script>;
 
<div id="map" style="width: 400px; height: 300px"></div>
 
<script type="text/javascript">
    //<![CDATA[
 
    var start_latitude = "52.4777619318499";
    var start_longitude = "-1.89788818359375";
    var zoomlevel_add = 11;
    var zoomlevel_edit = 3;
 
    var map = new GMap(document.getElementById("map"));
    map.addControl(new GSmallMapControl());
 
  var latitude = document.getElementById('field_latitude').value;
  if (latitude == "")
    latitude = start_latitude;
  var longitude = document.getElementById('field_longitude').value;
  if (longitude == "")
    longitude = start_longitude;
  if (latitude == start_latitude)
     zoomlevel = zoomlevel_add;
  else
     zoomlevel = zoomlevel_edit;
 
    // center and zoom to the lat/long in the form
    map.centerAndZoom(new GPoint(longitude,latitude), zoomlevel);
 
    GEvent.addListener(map, 'click',
        function(overlay, point) {
            if (point) {
                document.getElementById('field_latitude').value = point.y;
                document.getElementById('field_longitude').value = point.x;

            }
        }
    );
GEvent.addListener(map, "click", function(overlay, latlng) {
          if (latlng) {
            marker = new GMarker(latlng, {draggable:true});
map.addOverlay(marker);
}
});
//]]>
</script>
« Последнее редактирование: 19.11.2010, 19:20:25 от devul » Записан
lezvoed
Осваиваюсь на форуме
***

Репутация: +7/-0
Offline Offline

Сообщений: 56


« Ответ #1 : 03.12.2010, 20:36:32 »

Я использовал такой код:
Код:
<div style="float: left;">
<script src="http://maps.google.ru/maps?file=api&v=1&key={googleApiKey}" type="text/javascript">
</script>

<div id="map" style="width: 432px; height: 350px"></div>
<script type="text/javascript">
    //<![CDATA[
 
    var start_latitude = "15.437531155373254";
    var start_longitude = "73.83407598361373";
    var zoomlevel_add = 8;
    var zoomlevel_edit = 3;
 
    var map = new GMap(document.getElementById("map"));
    map.addControl(new GSmallMapControl());
    map.addControl(new GMenuMapTypeControl());
     map.setMapType(G_HYBRID_MAP);
 
   var latitude = document.getElementById('field_latitude').value;
  if (latitude == "")
    latitude = start_latitude;
  var longitude = document.getElementById('field_longitude').value;
  if (longitude == "")
    longitude = start_longitude;
  if (latitude == start_latitude)
zoomlevel = zoomlevel_add;   
  else
     {zoomlevel = zoomlevel_edit; 
  point = new GLatLng(latitude,longitude);
  map.addOverlay(new GMarker(point, {draggable: true}));}
 
  // center and zoom to the lat/long in the form
map.centerAndZoom(new GPoint(longitude,latitude), zoomlevel);

   GEvent.addListener(map, 'click',
        function(overlay, point) {
            if (point) {
map.clearOverlays();
map.addOverlay(new GMarker(point, {draggable: true}));
                document.getElementById('field_latitude').value = point.y;
                document.getElementById('field_longitude').value = point.x;
            }
        }
    );   
//]]>
</script>
 
<br>
</div>
<div style="float:left;"> <img src="http://goa.dev/components/com_sobi2/images/info.png" class="editlinktip hasTip" alt="Подсказка" title="Подсказка::Укажите, где расположен ваш объект, кликнув по соответствующей точке.  Используйте регулировку масштаба и смену режимов отображения (карта, спутник, гибрид)."/></div>
Записан
terveg
Давно я тут
****

Репутация: +17/-0
Offline Offline

Пол: Мужской
Сообщений: 273


ставь "+" руки не отсохнут


« Ответ #2 : 08.12.2010, 23:25:53 »

спасибо за очень полезный хак-теперь пользователи не тупикуют Azn
чтобы не спутник а карта выводилась по умолчанию нужно заменить код
Цитировать
    var map = new GMap(document.getElementById("map"));
    map.addControl(new GSmallMapControl());
    map.addControl(new GMenuMapTypeControl());
     map.setMapType(G_HYBRID_MAP);
на
Цитировать
    var map = new GMap(document.getElementById("map"));
    map.addControl(new GSmallMapControl());
Записан
lezvoed
Осваиваюсь на форуме
***

Репутация: +7/-0
Offline Offline

Сообщений: 56


« Ответ #3 : 10.12.2010, 11:13:11 »

Ну, если уж быть точным, достаточно один параметр поменять всего.

Вместо

Код:
map.setMapType(G_HYBRID_MAP);

поставить

Код:
map.setMapType(G_NORMAL_MAP);
Записан
devul
Давно я тут
****

Репутация: +16/-0
Offline Offline

Сообщений: 319



« Ответ #4 : 26.12.2010, 01:59:18 »

спасибо) lezvoed ваш код работает как надо)
Записан
mystique
Давно я тут
****

Репутация: +4/-0
Offline Offline

Пол: Мужской
Сообщений: 279



« Ответ #5 : 15.03.2011, 22:24:09 »

Подскажите пожалуйста, а в каком файле этот код добавить нужно?
Записан
lezvoed
Осваиваюсь на форуме
***

Репутация: +7/-0
Offline Offline

Сообщений: 56


« Ответ #6 : 15.03.2011, 23:34:58 »

Надо в админке SOBI2 создать специальное поле типа "произвольный код" (ну или что-то в этом духе) и вставить этот код в соотв. инпут.

Подробнее - используйте поиск по форуму.
Записан
mystique
Давно я тут
****

Репутация: +4/-0
Offline Offline

Пол: Мужской
Сообщений: 279



« Ответ #7 : 16.03.2011, 09:41:40 »

Спасибо! Совсем из головы вылетело. Хотя сам писал подобные советы не так давно. Wink))
Записан
hel
Захожу иногда
**

Репутация: +0/-0
Offline Offline

Сообщений: 12


« Ответ #8 : 15.04.2011, 21:03:14 »

А у меня что-то не получилось. Вставил код, но в форме добавления записи выдает пустую форму карты.


С чем может быть связано?
Записан
devul
Давно я тут
****

Репутация: +16/-0
Offline Offline

Сообщений: 319



« Ответ #9 : 16.04.2011, 12:24:22 »

ох помню и мучился с этим) но как то победил.. уж непомню как(((
Записан
hel
Захожу иногда
**

Репутация: +0/-0
Offline Offline

Сообщений: 12


« Ответ #10 : 16.04.2011, 14:00:32 »

ох помню и мучился с этим) но как то победил.. уж непомню как(((
:-)  Ну спасибо за ответ ).   Хоть буду знать, что нефиг время тратить. Буду ждать, пока кто-то подскажет ))
Записан
denmos
Осваиваюсь на форуме
***

Репутация: +7/-0
Offline Offline

Пол: Мужской
Сообщений: 81


SINTEZ2 + мафон "легенда"


« Ответ #11 : 16.04.2011, 19:40:04 »

А Вы случаем googleApiKey не забыли получить у Google и прописать в настройках
Записан
hel
Захожу иногда
**

Репутация: +0/-0
Offline Offline

Сообщений: 12


« Ответ #12 : 16.04.2011, 23:31:28 »

А Вы случаем googleApiKey не забыли получить у Google и прописать в настройках
googleApiKey у меня прописан в настройках и в каталоге работает
А скажите, в скрипте который записан у lezvoed в строчке
<script src="http://maps.google.ru/maps?file=api&v=1&key={googleApiKey}" type="text/javascript">
здесь должен быть записан ключ googleApiKey  или оставить все без изменений?  Я хотел сюда прописать ключ, который в SOBI2, но ругается, говорит вам нужен другой ключ для этого домена. Поэтому поставил переменную googleApiKey, т.е. оставил строчку без изменений
« Последнее редактирование: 16.04.2011, 23:43:47 от hel » Записан
denmos
Осваиваюсь на форуме
***

Репутация: +7/-0
Offline Offline

Пол: Мужской
Сообщений: 81


SINTEZ2 + мафон "легенда"


« Ответ #13 : 17.04.2011, 17:22:17 »

googleApiKey у меня прописан в настройках и в каталоге работает
В чём проблема тогда?
или оставить все без изменений?
оставить без изменений
Записан
hel
Захожу иногда
**

Репутация: +0/-0
Offline Offline

Сообщений: 12


« Ответ #14 : 17.04.2011, 17:29:43 »

В чём проблема тогда?оставить без изменений
Он работает при просмотре каталога, а при добавлении нового предприятия , выдает вот ту картинку, которая вверху.
Если же я вместо переменной googleApiKey вставляю тот ключ, который прописан у меня в SOBI2 - пишет для этого домена нужен другой ключ.
Записан
devul
Давно я тут
****

Репутация: +16/-0
Offline Offline

Сообщений: 319



« Ответ #15 : 28.08.2011, 17:35:51 »

столкнулся опять с такой траблой, т.е. серым блоком без подгрузки карты...      и нашел причину.. идиотизм НО.. если поля широты и долготы не публиковать, или публиковать но после самой карты - то фиг - не будет работать гугломап.
Если же и широту и долготу опубликовать ДО карты то всё гуд!.
Записан
Страниц: [1]   Вверх
  Добавить закладку  |  Печать  
 
Перейти в:  

Рейтинг@Mail.ru Rambler Top100 Powered by SMF 1.1.16 | SMF © 2006, Simple Machines

Joomlaforum.ru is not affiliated with or endorsed by the Joomla! Project or Open Source Matters.
The Joomla! name and logo is used under a limited license granted by Open Source Matters
the trademark holder in the United States and other countries.

LiveInternet