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

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

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

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



« Ответ #30 : 06.11.2009, 19:30:51 »

Использую такой код:
Код:
<script type="text/javascript" language="JavaScript">
/* adjust here the field names if they are not correct */
var apiKey = "{googleApiKey}";
var cityField = 'field_city';
var streetField = 'field_street';
var countryField = 'field_country';
 
function fetchCoordinates() {
  /* here you should not change anything  */
  var gRequest = null;
  var postalcode = document.getElementById(postalCodeField).value;
  var city = document.getElementById(cityField).value;
  var street = document.getElementById(streetField).value;
  var country = document.getElementById(countryField).value;
 
  if(city == '' || street == '' || country == '' ) {
    /* you can change the error message here */
    alert("Заполните адрессные данные");
  }
  else {
    var gRequest = "http://maps.google.com/maps/geo?q=" +street+ "+" +city+ "+" +country+ "&callback=getCoordinates&output=JSON&key="+apiKey;
    var scriptObj = document.createElement("script");
    scriptObj.setAttribute("type", "text/javascript");
    scriptObj.setAttribute("src", gRequest);
    document.getElementsByTagName("head").item(0).appendChild(scriptObj);
  }
}
function getCoordinates(data) {
  switch(data.Status.code) {
    case 610:
      /* you can change the error message here */
      alert("Api key not valid: {googleApiKey}");
      break;
    case 603:
    case 602:
    case 601:
    case 500:
      /* you can change the error message here */
      alert("Не могу получить координаты для данного адресса");
      break;
    case 200:
      document.getElementById(latitudeField).value = data.Placemark[0].Point.coordinates[1];
      document.getElementById(longitudeField).value = data.Placemark[0].Point.coordinates[0];
      break;
  }
}
</script>
<!-- You can change the "value" (The label on the button) here -->
<input type="button" class="button" onclick="fetchCoordinates();" value="Выбрать координаты"/>
И к чему эта кнопка (выбора координат)?
<!-- You can change the "value" (The label on the button) here -->
<input type="button" class="button" onclick="fetchCoordinates();" value="Fetch Coordinates"/>
Она у меня не работает...
Если не работает, значит скрипту не передаются какие либо данные, либо передаются неверно, от этого он и координат не получает..Надо копать с сторону полей. У вас поле страна заполнено?
Записан
intcorp
Завсегдатай
*****

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

Сообщений: 492


« Ответ #31 : 07.11.2009, 12:16:40 »

Из данных по месторасположению используются поля
var cityField = 'field_city';
var streetField = 'field_street';
var countryField = 'field_country';
Записан
intcorp
Завсегдатай
*****

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

Сообщений: 492


« Ответ #32 : 07.11.2009, 18:07:01 »

Еще вопрос: можно ли как-то самому добавить номер дома на карте в Google или отправить инфу мастерам Google?
Имеется торговый центр по адресу проспект Ленина 98, но на карте есть только №96, хотя задние 98 со спутника трудно не заметить http://maps.google.com/?ie=windows-1251&hl=ru&q=98%2C+%CB%E5%ED%E8%ED%E0+%EF%F0-%F2+%CD%E8%EA%EE%EB%E0%E5%E2+%D3%EA%F0%E0%E8%ED%E0 )))
Записан
SyncMaster
Moderator
*****

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

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


« Ответ #33 : 07.11.2009, 19:34:19 »

Еще вопрос: можно ли как-то самому добавить номер дома на карте в Google или отправить инфу мастерам Google?

Я вот порой смотрю и не понимаю, как люди ищут информацию… Поиск «карты Google сообщить об ошибке». У меня первая ссылка сверху.
Записан
liberator
Осваиваюсь на форуме
***

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

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



« Ответ #34 : 08.11.2009, 13:15:58 »

Хотелось бы реализовать следующее:
человек вводит координаты, скрипт после нажатия на кнопку получает приблизительные координаты, после чего подгружается карта и человек уже вручную указывает более точное положение...
Скрипт автоматического определения координат:
Код:
<script type="text/javascript" language="JavaScript">

var apiKey = "{googleApiKey}";
var postalCodeField = 'field_postcode';
var cityField = 'field_city';
var streetField = 'field_street';
var countryField = 'field_country';
var domField = 'field_dom';
var latitudeField = 'field_latitude';
var longitudeField = 'field_longitude';

function fetchCoordinates() {

var gRequest = null;
var postalcode = document.getElementById(postalCodeField).value;
var city = document.getElementById(cityField).value;
var street = document.getElementById(streetField).value;
var dom = document.getElementById(domField).value;
var country = "Россия";

if(postalcode == '' || city == '' || street == '' || country == '' ) {

alert("Сначала заполните все требуемые поля для адреса, а уже потом используйте автоопределение координат.");
}
else {
var gRequest = "maps.google.com/maps/geo?..=" +dom+ "+" +street+ "+" +postalcode+ "+" +city+ "+" +country+ "&output=json&key="+apiKey+"&callba ck=getCoordinates";
var scriptObj = document.createElement("script");
scriptObj.setAttribute("type", "text/javascript");
scriptObj.setAttribute("src", gRequest);
document.getElementsByTagName("head").it em(0).appendChild(scriptObj);
}
}
function getCoordinates(data) {
switch(data.Status.code) {
case 610:
/* you can change the error message here */
alert("Api key not valid: {googleApiKey}");
break;
case 603:
case 602:
case 601:
case 500:
/* you can change the error message here */
alert("Невозможно определить координаты для этого адреса автоматически, укажите вручную.");
break;
case 200:
document.getElementById(latitudeField).value = data.Placemark[0].Point.coordinates[1];
document.getElementById(longitudeField).value = data.Placemark[0].Point.coordinates[0];
break;
}
}
</script>

<input type="button" class="button" onclick="fetchCoordinates();" value="Автоопределение координат"/>




Скрипт ручного указания на карте:
Код:
<script src="maps.google.com/maps?file..}" type="text/javascript"></script> ;
<div id="map" style="width: 500px; height: 350px"></div>

<script type="text/javascript">
//<![CDATA[

var start_latitude = "56.8825033";
var start_longitude = "35.8427687";
var zoomlevel_add = 8;
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;
}
}
);
//]]>
</script>
Код вставил для наглядности, его и так тут все знают..
Записан
zromualdo
Давно я тут
****

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

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



« Ответ #35 : 25.11.2009, 18:46:13 »

"Скрипт ручного указания на карте:"

что может быть если у меня белое пространство вместо карты? даже без рамки гугл

(на странице добавления пользователем материала в каталог и указания его расположения на карте)
Записан
SyncMaster
Moderator
*****

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

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


« Ответ #36 : 25.11.2009, 19:06:58 »

что может быть если у меня белое пространство вместо карты? даже без рамки в Google

включите отображение ошибок и посмотрите что пишет.
Записан
zromualdo
Давно я тут
****

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

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



« Ответ #37 : 25.11.2009, 20:14:32 »

включил. ничего не пишет. может от того что локал хост?
Записан
SyncMaster
Moderator
*****

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

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


« Ответ #38 : 25.11.2009, 20:20:23 »

возможно. я давно не использую локальные вебсерверы, а сразу настраиваю на хостинге — проблем меньше и ошибки искать проще.
Записан
zromualdo
Давно я тут
****

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

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



« Ответ #39 : 13.01.2010, 10:58:07 »

два вопросика:

1. в модуле Гео Категории увеличение карты работает только по двойному щелчку. Как сделать по прокрутке колеса мышки?

2. в стандартной  Google карте появилась кнопка "Ещё" (http://maps.google.com/) (можно вкл/выкл фотки, видео и т.д.). Как я понял с гугловской инструкции, код на ее добавление они сообщат чуть попозже - я правильно понял или уже можно ее добавить? никто не смотрел?
Записан
zromualdo
Давно я тут
****

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

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



« Ответ #40 : 21.01.2010, 21:59:27 »

3. при просмотре записи в моем каталоге заведений города, на карте где отображается расположение заведения хочу добавить слой Википедии (пример: http://code.google.com/intl/ru/apis/maps/documentation/examples/layer-simple.html)

для этого документация  Google дает такой кусочек кода
Код:
function initialize() {
  if (GBrowserIsCompatible()) {
    var map = new GMap2(document.getElementById("map_canvas"));
    map.setCenter(new GLatLng(40.730885,-73.997383), 15);
    var myLayer = new GLayer("org.wikipedia.en");
    map.addOverlay(myLayer);
  }
}

вставлял его в свое поле выбора широты и долготы - ничего не получается.
вот мой код:
Код:
<script src="http://maps.google.com/maps?file=api&v=1&key={googleApiKey}" type="text/javascript"></script>;
Двойной щелчок - увеличение:
<div id="map" style="width: 632px; height: 500px"></div>
 
<script type="text/javascript">
    //<![CDATA[
 
    var start_latitude = "53";
    var start_longitude = "32";
    var zoomlevel_add = 13;
    var zoomlevel_edit = 18;
 
    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);


//добавляем переключатель типа карт (Карта, Спутник, Гибрид)
//map.addControl(new GLargeMapControl());
map.addControl(new GMapTypeControl());
//указываем тип карты по-умолчанию (Спутник)
map.setMapType(G_HYBRID_MAP);



    GEvent.addListener(map, 'click',
        function(overlay, point) {
            if (point) {
                document.getElementById('field_latitude').value = point.y;
                document.getElementById('field_longitude').value = point.x;
            }
        }
    );   
//]]>
</script>
Записан
Lord Glue
Завсегдатай
*****

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

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


добрый пандо


« Ответ #41 : 22.01.2010, 08:09:23 »

вот смотри: лучше сделай файл mapgoogle.html в корне сайта, закинь в него код и потренируйся на нем.
по коду: не вижу, чтоб ты добавил эту функцию.
 var map = new GMap(document.getElementById("map"));   //Создал объект карты
var myLayer = new GLayer("org.wikipedia.en");  //Создал объект слоя
    map.addOverlay(myLayer);          //Положил слой на карту

Т.е. функция та тебе не нужна, только 2 строчки вставить в твой код надо
Записан
zromualdo
Давно я тут
****

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

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



« Ответ #42 : 26.01.2010, 11:26:41 »

помогло Azn
Записан
CrazyMAMOHT
Захожу иногда
**

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

Сообщений: 11


« Ответ #43 : 02.02.2010, 21:16:16 »

Доброго времени суток! Хочется сделать, чтобы при детальном просмотре выводилась карта местности с указанием метки на карте.

_http://lysvacity.ru/index.php?option=com_sobi2&sobi2Task=sobi2Details&catid=3&sobi2Id=1&Itemid=5

Для этого было проделано следующее:

Записан Google API Key в настройках  (View Configuration->Google Maps)
    
Созданы поля 'field_longitude' и 'field_latitude' для географической долготы и широты (View Configuration->Google Maps)

Создано поле 'field_map', имеющее тип "text code", в которое вставлен следующий скрипт, указанный ниже:


Код:
<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 = "57.80259132385254";
    var start_longitude = "58.10669504078775";
    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;
            }
        }
    );  
//]]>
</script>

При добавлении карта отображается (стандартная) и при щелчке по карте поля 'field_longitude' и 'field_latitude' заполняются координатами.
Далее при детальном просмотре также отображается карта с маркером.

Однако, мой город не отрисован и снимки с космоса тоже ниочем… поэтому используется  своя карта на гугловском движке: _http://lysvacity.ru/map.html

Код:
<script src="http://maps.google.com/maps?file=api&amp;v=2&amp;key=ABQIAAAA8Wl9BKQvJavnEqRHsC4jjRRBdKLjill6Gmn_G3adwrnZaNAX1RQUr8CAVrSKZ-BEksxhdbxpvyqeDA"
      type="text/javascript" charset="utf-8"></script>
    <script type="text/javascript" charset="utf-8">

    //<![CDATA[

    function load() {
      if (GBrowserIsCompatible()) {
        var map = new GMap2(document.getElementById("map"));
document.map = map;
   document.map.addControl(new GScaleControl());
document.map.addControl(new GMapTypeControl());
document.map.addControl(new GLargeMapControl());


var copyright = new GCopyright(1, new GLatLngBounds(new GLatLng(58.12486350505505,57.755126953125),
              new GLatLng(58.06362273407202,57.8704833984375)),
           0, "&copy; 2007 lysvagrad.net");

       var copyrightCollection = new GCopyrightCollection("lysvagrad.net");
       copyrightCollection.addCopyright(copyright);

       CustomGetTileUrl=function(a,b){
          return "/map/"+(17-b)+"/"+a.x+"_"+a.y+"_"+(17-b)+".png";
       }

       var tilelayers = [new GTileLayer(copyrightCollection,0,17)];
       tilelayers[0].getTileUrl = CustomGetTileUrl;

       var custommap = new GMapType(tilelayers, new GMercatorProjection(18), "Лысьва", {errorMessage:"Сюда нельзя!"});

     map.custommap = custommap;
     document.map.addMapType(custommap);

        document.map.setCenter(new GLatLng(58.09475525718224, 57.79828906059265), 16, custommap);



      }
    }

    //]]>
    </script>


Пробывал в поле 'field_map' вставить вышеуказанный скрипт, но ничего не отображается или в итоге отображается карта со спутника, а нужно чтобы своя карта отображалсь.

Подскажите как быть, может разбирающиеся люди приведут правильный пример, какой код нужно вставить в этот поле ?  Или нужно еще, гте-то менять параметры ? Заранее спасибо.
« Последнее редактирование: 25.02.2010, 20:23:57 от SyncMaster » Записан
denmos
Осваиваюсь на форуме
***

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

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


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


« Ответ #44 : 10.08.2010, 22:13:02 »

Доброго всем! Ни как не могу понять в чём проблема.
Сделал всё, как изложил автор топика, и вроде всё работает. Но если переместить поле с картой выше полей с координатами, то при добавлении записи, вместо карты отображается только рамка с гуглом Angry
Joomla 1.5, sobi2-RC2.9.2.4
Записан
prostoy
Давно я тут
****

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

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


Истина где то рядом.


« Ответ #45 : 30.08.2010, 21:46:37 »

Извините друзья, я так и не понял в какой файл надо править что бы увеличить размер ока?
Записан
Lord Glue
Завсегдатай
*****

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

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


добрый пандо


« Ответ #46 : 31.08.2010, 04:32:41 »

Код:
<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">...........
так вот же - ширина - 400, высота - 300
Записан
prostoy
Давно я тут
****

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

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


Истина где то рядом.


« Ответ #47 : 31.08.2010, 07:57:12 »

Lord Glue я понял что надо менять только в каком файле?
Записан
Lord Glue
Завсегдатай
*****

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

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


добрый пандо


« Ответ #48 : 31.08.2010, 08:40:44 »

Цитировать
Для этого было проделано следующее:

Записан Google API Key в настройках  (View Configuration->Google Maps)
   
Созданы поля 'field_longitude' и 'field_latitude' для географической долготы и широты (View Configuration->Google Maps)

Создано поле 'field_map', имеющее тип "text code", в которое вставлен следующий скрипт, указанный ниже:
Записан
necrqlan
Захожу иногда
**

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

Сообщений: 16


« Ответ #49 : 02.09.2010, 03:52:03 »

Ребят, есть готовое решение для Joomla 1.0.15?
Часов 6 уже бьюсь головой, никак не настрою, чтоб все работало на автомате.
Записан
zwolf
Осваиваюсь на форуме
***

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

Сообщений: 31


« Ответ #50 : 18.06.2011, 15:15:01 »

Помогите прикрутить карты от викимапии для каталога SOBI2.
Нашего города Волгодонска нет на карте Google.
Записан
Страниц: 1 [2]  Все   Вверх
  Добавить закладку  |  Печать  
 
Перейти в:  

Рейтинг@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