Фильтр по:
  

  • Страница 3 из 4
  • «
  • 1
  • 2
  • 3
  • 4
  • »
Модератор форума: likbezz  
Скрипты и коды для юкоз - Форум аццкого кодера » Как сделать? Информация для вновь прибывших » Как сделать... » Карта Google в uCoz (Реализация внедрения GoogleMap на uCoz сайт)
Карта Google в uCoz
Дата: Пятница, 29.06.2012, 11:38 |
k142
Рядовой
Группа: Проверенные
Сообщений: 4
Награды: 0
Репутация: 0
Статус: Offline


под скриптом я имеею виду вот это:

Код
var map, circle, circleOptions, setCenter, marker;

function initialize() {
var myLatlng = new google.maps.LatLng(50.45127, 30.523368); //Kiev
var myOptions = {
zoom: 9,
center: myLatlng,
mapTypeId: google.maps.MapTypeId.HYBRID
}
map = new google.maps.Map(document.getElementById("my_map"), myOptions);

setCenter = true;

circleOptions = {
fillColor:"#00AAFF",
fillOpacity:0.5,
strokeColor:"#FFAA00",
strokeOpacity:0.8,
strokeWeight:2,
clickable:false
}

google.maps.event.addListener(map, 'click', function(event) {
if (setCenter) {
if (marker != undefined) {
marker.setMap(null);
}
marker = new google.maps.Marker({
position:event.latLng,
clickable:false
});
marker.setMap(map);
circleOptions.center = event.latLng;
setCenter = false;
}
else {
//рассчитываем расстояние между точками
var radius = distHaversine(circleOptions.center, event.latLng)
circleOptions.radius = radius*1000;
if (circle != undefined) {
circle.setMap(null);
}
circle = new google.maps.Circle(circleOptions);
circle.setMap(map);
setCenter = true;
}
});
}

function loadScript() {
var script = document.createElement("script");
script.src = "http://maps.google.com/maps/api/js?sensor=false&callback=initialize";
document.body.appendChild(script);
}

//http://stackoverflow.com/questions/1502590/calculate-distance-between-two-points-in-google-maps-v3
rad = function(x) {return x*Math.PI/180;}

distHaversine = function(p1, p2) {
var R = 6371; // earth's mean radius in km
var dLat = rad(p2.lat() - p1.lat());
var dLong = rad(p2.lng() - p1.lng());

var a = Math.sin(dLat/2) * Math.sin(dLat/2) +
Math.cos(rad(p1.lat())) * Math.cos(rad(p2.lat())) * Math.sin(dLong/2) * Math.sin(dLong/2);
var c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1-a));
var d = R * c;

return d.toFixed(3);
}

window.onload = loadScript;


и как правильно выше написаное называется?
будет ли вообще это работать?


 
Дата: Пятница, 29.06.2012, 11:42 |
likbezz
Аццкий кодер
Группа: Администраторы
Сообщений: 9093
Награды: 23
Репутация: 459
Статус: Unknown


k142,
под скриптом я имеею виду вот это:

Ну, это стандартный гугловский скрипт карты.
Он и инициализирует саму карту, должен находится на каждой странице с картой, естественно.

будет ли вообще это работать?

В смысле «работать»?
Карту выводить будет. Это стандартный гугловский скрипт - почему не будет? должен)

Вот ссылочка на инструкцию по API Goole Map http://code.google.com/intl/ru/apis/maps/signup.html
Если интересно, советую ознакомится в первую очередь.


 
Дата: Воскресенье, 01.07.2012, 15:49 |
k142
Рядовой
Группа: Проверенные
Сообщений: 4
Награды: 0
Репутация: 0
Статус: Offline


likbezz, я тебе премного благодарен за помощь!

 
Дата: Суббота, 18.08.2012, 09:28 |
Solyt
Сержант
Группа: Проверенные
Сообщений: 39
Награды: 0
Репутация: 0
Статус: Offline


Какая замечательная функия))) а сделать общую карту со всеми результатами материалов на отдельной страничке и чем-то похожим как здесь http://www.tominsk.com/load/karty_kvartir_na_sutki/vse_kvartiry_na_karte/odnokomnatnye_kvartiry_na_sutki/7-1-0-8 можно? Если да то хотелось бы видеть у себя на сайте )) сделаешь?

 
Дата: Суббота, 18.08.2012, 11:49 |
likbezz
Аццкий кодер
Группа: Администраторы
Сообщений: 9093
Награды: 23
Репутация: 459
Статус: Unknown


Solyt,
сделаешь?

В такой форме вопросы даже не рассматриваются мною.


 
Дата: Суббота, 18.08.2012, 11:59 |
Solyt
Сержант
Группа: Проверенные
Сообщений: 39
Награды: 0
Репутация: 0
Статус: Offline


хм, а чем форма вопроса не понравилась то? именно "сделаешь" подразумевает исключительно твою работу, с оплатой с моей стороны соответственно. Или как спросить?! Сделаем, сделаете, продашь, рассмотрите возможность помощи.. может я что должен остался да по невнимательности забыл, так ты скажи, мыж люди как ни как...

 
Дата: Суббота, 18.08.2012, 12:07 |
likbezz
Аццкий кодер
Группа: Администраторы
Сообщений: 9093
Награды: 23
Репутация: 459
Статус: Unknown


Solyt,
подразумевает исключительно твою работу, с оплатой с моей

С оплатой - вопросы в личку.
Во всяком случае именно «оплата» любая, никак не фигурирует в вопросе.
так ты скажи, мыж люди как ни как...

Так и спроси: сколько будет стоить сделать так --\\ и тут подробное описание \\--
Или: что нужно чтобы вывести ... --\\ и тут подробное описание \\--


 
Дата: Суббота, 18.08.2012, 12:35 |
Solyt
Сержант
Группа: Проверенные
Сообщений: 39
Награды: 0
Репутация: 0
Статус: Offline


а у меня что были кидаловы с моей стороны по оплате или я первый раз к тебе обратился? если я прошу в чем-то помочь (не говоря об оплате) то так и пишу спаси... при этом полагая что суть проблемы копеешная, если это не так, то как и раньше ты вполне спокойно можешь сказать "стоит столько то"... сегодня отправил тебе ссылочку на скрипт, ты видимо не заметил))) так вот это тоже подразумевалось за деньги.

 
Дата: Четверг, 11.10.2012, 15:50 |
Fariz
Рядовой
Группа: Пользователи
Сообщений: 4
Награды: 0
Репутация: 0
Статус: Offline


общую карту со всеми результатами материалов на отдельной страничке


likbezz, Посоветуй, в каком направлении думать. Я использую яндекс.карты. Есть реализация добавления на карту нескольких объектов разделенных на группы.
Вот эта часть скрипта выводит адрес метки для объектов каждой группы
var groups = [
createGroupa(1,"Квартиры",[
$MYINF_8$
]),
createGroupa(2,"Комнаты",[
$MYINF_9$
]),
createGroupa(3,"Коттеджи",[
$MYINF_10$
]),
];
Но не могу решить один вопрос:
1. При добавлении материала есть поле $AUTHOR_SITE$ - переименовано в "адрес". Именно по адресу выводится метка на карте.
2. Для каждой группы адрес выводится с помощью информера. Вот таким образом ["$AUTHOR_SITE$"], .Не смог придумать, как по другому.
Если групп немного, то можно оставить вывод адресов с помощью информеров. А как быть, если групп будет больше 30?
В этом и состоит вопрос. Можно каким-то образом (кроме информеров) брать данные из поля $AUTHOR_SITE$ и передавать скрипту для метки на карте?


 
Дата: Четверг, 11.10.2012, 15:54 |
likbezz
Аццкий кодер
Группа: Администраторы
Сообщений: 9093
Награды: 23
Репутация: 459
Статус: Unknown


Fariz,
Если групп немного, то можно оставить вывод адресов с помощью информеров. А как быть, если групп будет больше 30?

Вообще, раз один фик - это скрипт, смысл так беспечно тратить информеры не вижу.
А для групп можно прописать координаты в профиле, или вообще в отдельном файле JS.

А для метки
брать данные из поля $AUTHOR_SITE$ и передавать скрипту для метки на карте?

Скриптом. GET запросом. Выводить эту переменную в скрытом блоке с ID и брать.

Или использовать php с текстовой базой.

А вообще, сложно так сказать, я честно говоря, не оч. понял какие именно затруднения... и где и как все это выглядит.

Если объекты по категориям - можно отрываться от ID категории/раздела и прописать условиями ..

Но, по любому, раз карта - скрипт - смысл использовать именно информеры ... странный. когда все то же самое можно скриптом - это же простой JS массив данных.
Опять же, если объектов немного. Если много, то только информероам или php.


 
Дата: Среда, 06.03.2013, 19:09 |
chila
Лейтенант
Группа: Проверенные
Сообщений: 70
Награды: 0
Репутация: 0
Статус: Offline


День добрый. Есть, практически, рабочий вариант карты, с кучей скриптов... Но, что-то не хватает)
Скрипт карты:

Код
var mapMenuOpen = true;
var shadow = new google.maps.MarkerImage(
         'link',
         new google.maps.Size(87,50),
         new google.maps.Point(0,0),
         new google.maps.Point(30,50)
       );
        
       function mapMenuClose() {
         if (!mapMenuOpen) {
         $('#haritaPopUp').css('display', 'none');
           mapMenuOpen = true;  
         }}

  $(function () {

$('#anaharita').gmap3({
           map:{
             options: {
               center: [48.462547, 35.051019],
               zoom: 16,

       }
           }
         });

  $('#anaharita').gmap3({
  marker:{
     values: list, // подтягивает с скрипта js/data.js (разметку этого файла прикрепил ниже)
     options: {
             draggable: false,
               shadow: shadow
             },

             // single marker events
             

  events: {
     click: function (marker, event, context) {
     mapMenuOpen = true;
     var map = $(this).gmap3('get');
     var scale = Math.pow(2, map.getZoom());
     var nw = new google.maps.LatLng(
     map.getBounds().getNorthEast().lat(), map.getBounds().getSouthWest().lng());
     var worldCoordinateNW = map.getProjection().fromLatLngToPoint(nw);
     var worldCoordinate = map.getProjection().fromLatLngToPoint(marker.getPosition());
     var pixelOffset = new google.maps.Point(Math.floor((worldCoordinate.x - worldCoordinateNW.x) * scale), Math.floor((worldCoordinate.y - worldCoordinateNW.y) * scale));
     var mapposition = $("#anaharita").position();
           
     if (context.data.type != "merkez") {
     var icerik = "<div class='left'><div class='magazaadi' id='magazaadi'> " + context.data.adi + "</div><div class='magazaadres' id='magazaadres'> " + context.data.adres + "</div><div class='magazabilgi' id='magazabilgi'>" + context.data.bilgi + "</div></div><div class='right'><div class='urunlogo' onClick='CreatePresentation("+context.data.brosurID+",1,2);'> "+context.data.brosur+" </div></div>";
                    
                   $(".accordion").html(icerik);
                    
                   magazalogopath = "logo/";
                   magazabrosurpath = "";
                    
                   $("#haritaPopUp").css('display', 'block');
                   $("#haritaPopUp").css('left', (pixelOffset.x + mapposition.left + 15 + 'px'));
                   $("#haritaPopUp").css('top', (pixelOffset.y + mapposition.top - 62 + 'px'));
                    
                 }
               },

               mouseout: function () {
                 mapMenuOpen = false;
                 var t = setTimeout("mapMenuClose()", 500)
               }
             },
              
             // cluster definition
             cluster:{
               radius: 100,
    
               events: {
                 click: function (cluster, event, context) {
        
                    
                   $('.accordionButton').click(function () {
                });

                   
                 },
                 
                 click: function (cluster, event, context){}
               }
             }
           },  

           

     
         });

         $("#haritaPopUp").mouseover(function() {
           mapMenuOpen = true;
           $("#haritaPopUp").css('display', 'block');
         });
          
var map = $("#anaharita").gmap3("get")
map.setZoom(13);

    $("#haritaPopUp").mouseout(function() {
           $('#haritaPopUp').css('display', 'none');
         });
          
       }); // end of $(function(){


Вышеупомянутый файл, который подтягивается:

Код
// иконки для маркеров
var иконка = new google.maps.MarkerImage(
   'ссылка',
   new google.maps.Size(59,50),
   new google.maps.Point(0,0),
   new google.maps.Point(30,50)
);

// список маркеров
var list = [

{ lat: 48.4477019, lng: 35.07450399999993,  
data: {
adi: 'Название',  
adres: "адрес",  
bilgi: 'доп.данные',  
brosur: 'превьюшка'  
},  
options: {  
icon: иконка  
}},  
];


Суть вопроса:
Список маркеров формируется в "вид материалов" в виде:

Код
{ $OTHER3$  
     data: {
       adi: '$TITLE$',  
       adres: "$FILTER1_VALUE$ / $FILTER2_VALUE$",  
       bilgi: '$OTHER2$',  
   brosur: '$IMG_URL1$'  
     },  
     options: {  
       icon: иконка  
     }},

где $OTHER3$ - координаты маркера, в виде (lat: 0000, lng: 00000,), они записаны предварительно.

... где-то так)
вот теперь у меня тупик, как сделать так, чтобы скрипт карты подтягивал инфу не с файла, а искал ее на указанных страницах, например:
Список маркеров - искать урл: /board/1-1, /board/1-2, или другие.
Может запутанно написал, но как смог. Заранее спасибо


 
Дата: Среда, 06.03.2013, 19:21 |
likbezz
Аццкий кодер
Группа: Администраторы
Сообщений: 9093
Награды: 23
Репутация: 459
Статус: Unknown


chila,
Цитата (chila, Ср, 06.03.2013, 19:09:20)
вот теперь у меня тупик, как сделать так, чтобы скрипт карты подтягивал инфу не с файла, а искал ее на указанных страницах,

А что за функция подтягивает файл?
Там и копать...


 
Дата: Среда, 06.03.2013, 19:46 |
chila
Лейтенант
Группа: Проверенные
Сообщений: 70
Награды: 0
Репутация: 0
Статус: Offline


Увы, в скриптах не силен. Какая функция это делает, тоже не знаю. Но, если скрипт с маркерами вставить в страницу, то тоже работает. Видать ищет строку var list = [ и от нее пляшет...
Есть чей-то скрипт:
Код
<script type="text/javascript">   
   $.post("страница",
   function(data) {   
   var ifnohist = $("#upnews:first", data).html();   
   if (ifnohist == null) {   
   $('.neew').html('Материалов не найдено');   
   }   
   $("#upnews", data).each(function() {   
   var histr = $(this).html();   
   $('.neew').before(histr);   
   }); });   
</script>

, который ищет совпадения и выводит в див... Вообще реально переделать его так, чтобы результат работы он отображал не в диве, а в этом же скрипте, приблизительно так:

"var list = [" + "результат поиска" + "],"


 
Дата: Среда, 06.03.2013, 21:53 |
likbezz
Аццкий кодер
Группа: Администраторы
Сообщений: 9093
Награды: 23
Репутация: 459
Статус: Unknown


Цитата (chila, Ср, 06.03.2013, 19:46:08)
Видать ищет строку var list = [ и от нее пляшет...

Не строку, а переменную..
Цитата (chila, Ср, 06.03.2013, 19:46:08)
Вообще реально переделать его так, чтобы результат работы он отображал не в диве, а в этом же скрипте, приблизительно так:
"var list = [" + "результат поиска" + "],"

Реально ... если знать что искать ))
Я лично - в скрипт выше не вникал, и что что-то и откуда-то “подгружается” знаю только с ваших слов .. а оказывается вы и сами не очень-то знаете...

Цитата (chila, Ср, 06.03.2013, 19:09:20)
вот теперь у меня тупик, как сделать так, чтобы скрипт карты подтягивал инфу не с файла, а искал ее на указанных страницах, например:
Список маркеров - искать урл: /board/1-1, /board/1-2, или другие.

Не очень понятно что именно на этих страницах ... и что именно желается в результате.
Что должно получиться-то? В итоге?


 
Дата: Среда, 06.03.2013, 22:32 |
chila
Лейтенант
Группа: Проверенные
Сообщений: 70
Награды: 0
Репутация: 0
Статус: Offline


Я сам запутался)... Есть скрипт карты, который ищет переменную var list = [ + список маркеров... и выводит карту....
В виде материалов есть скрытый блок с информацией для маркеров. Есть примерный скрипт, который собирает эту информацию воедино и выводит результат в див. Проблема в том, что вышеупомянутый скрипт передает данные в див, а вот как сделать, чтобы эта информация дописывалась в самом скрипте...., примерно где-то так

Код
<script type="text/javascript">    
    $.post("страница",  
    function(data) {    
    var ifnohist = $("#upnews:first", data).html();    
    if (ifnohist == null) {    
    $('.neew').html('Материалов не найдено');    
    }    
    $("#upnews", data).each(function() {    
    var histr = $(this).html();    
    $('.neew').before(histr);    
    }); });  

// собираем информацию и выводим:  
  "var list = [" + то, что нашли + "]"  
// - финиш)

В итоге, в этом скрипте должны появится строки:

var list = [    

{ lat: 48.4477019, lng: 35.07450399999993,   
data: {  
adi: 'Название',   
adres: "адрес",   
bilgi: 'доп.данные',   
brosur: 'превьюшка'   
},   
options: {   
icon: иконка   
}},   

];

    
</script>


 
Скрипты и коды для юкоз - Форум аццкого кодера » Как сделать? Информация для вновь прибывших » Как сделать... » Карта Google в uCoz (Реализация внедрения GoogleMap на uCoz сайт)
  • Страница 3 из 4
  • «
  • 1
  • 2
  • 3
  • 4
  • »
Поиск:


Мобильная версия