Не нравятся результаты поиска? Попробуйте другой поиск!
DLE FAQ » Все вопросы » jQuery » 2GIS карта на сайте

2GIS карта на сайте


     09.08.2012    Все вопросы » jQuery    4868

вопрос
Всем привет, поднимаю вопрос 2 раз..
В 1 раз юзер "nowheremany" посоветовал использовать ту же систему которая описана тут
но, поскольку код скрипта карт 2гис отличаются от карт гугл, я не смог применить его на практике...
дело в том что, ширина и долгота в 2 гис записываются в эти строки:

param.value = pnt.getLon(сюда1) + ':' + pnt.getLat(сюда2);

и, если вставить в код теги доп. полей
param.value = pnt.getLon([xfvalue_maps]) + ':' + pnt.getLat([xfvalue_map2]);

то, она не работает..
еще одно решение:
var param = document.getElementById("xfields[maps]");
тоже не работает.. по-этому прошу помощи у вас, если кто-знает как это решается пожалуйста, помогите.

Ответа пока нет


10 комментариев

ПафНутиЙ
Админ

ПафНутиЙ - 9 августа 2012 21:06 -

а код вызова карты куда вставляется?

Каков вопрос - таков и ответ. Просто помните об этом.

FeDykt
Юзер

FeDykt - 9 августа 2012 21:09 -

ПафНутиЙ,
Вот то что, вставляю в addnews.tpl

<div id="MapWrap" style="width:700px; height:400px"></div>
            <script type="text/javascript">
                DG.load(function() {
                    var myMap = new DG.Map('MapWrap');
                    myMap.setCenter(new DG.GeoPoint(129.72836632538,62.028258660306));
                    myMap.setZoom(13);
                    myMap.controls.add(new DG.Controls.Zoom());
                    myMap.controls.add(new DG.Controls.FullScreen());
                    myMap.setMinZoom(11);

                    var observers = [];
                    var marker = null;
                    var rightClickCB = function(evt){
                        var pnt = evt.getGeoPoint();
                        if (marker != null) {
                            myMap.markers.remove(marker);
                        }
                        marker = new DG.Markers.Common({geoPoint: pnt});
                        myMap.markers.add(marker);
                
                    var param = document.getElementById("");
                    param.value = pnt.getLon([xfvalue_maps1]) + ':' + pnt.getLat([xfvalue_maps2]);
                    }
                    observers[0] = myMap.addEventListener(myMap.getContainerId(), 'DgClick', rightClickCB);
                });


а вот то, что вставляю в fullstory.tpl

<div id="MapWrap" style="width:538px; height:500px"></div>
              <script type="text/javascript">
                    DG.load(function() {
                        var lon = [xfvalue_maps1];
                        var lat = [xfvalue_maps2];
                        var myMap = new DG.Map('MapWrap');
                        myMap.setCenter(new DG.GeoPoint(lon, lat));
                        myMap.setZoom(16);
                        myMap.controls.add(new DG.Controls.Zoom());
                        myMap.controls.add(new DG.Controls.FullScreen());
                        myMap.setMinZoom(11);

                        var myBalloon = new DG.Balloons.Common({
                            geoPoint: new DG.GeoPoint(lon, lat),
                            contentHtml: '[xfvalue_adresss]'
                        });
                        
                        var marker = new DG.Markers.Common({
                            geoPoint: new DG.GeoPoint(lon, lat),
                            clickCallback: function() {
                                 if (! myMap.balloons.getDefaultGroup().contains(myBalloon)) {
                                    myMap.balloons.add(myBalloon);
                                } else {
                                    myBalloon.show();
                                }
                            }
                        });
                        myMap.markers.add(marker);
                    });    
                </script>

ПафНутиЙ
Админ

ПафНутиЙ - 9 августа 2012 21:13 -

а тупо вот так работает?:

Каков вопрос - таков и ответ. Просто помните об этом.

FeDykt
Юзер

FeDykt - 9 августа 2012 21:16 -

ПафНутиЙ,
ну, если просто вставить код карты уже с забитыми координатами то да, все отлично работает.
Просто, я хочу чтобы она использовала один шаблон и (fullstory) чтобы отображать карту во всех "объектах" (постах) координаты указываются при добавлении объекта (поста)

ПафНутиЙ
Админ

ПафНутиЙ - 9 августа 2012 21:18 -

Это понятно.
По идее должно работать т.к. js-код формируется уже после парсинга тегов DLE.
Надо бы взглянуть на исходный код в браузере.

Каков вопрос - таков и ответ. Просто помните об этом.

FeDykt
Юзер

FeDykt - 9 августа 2012 21:24 -

ПафНутиЙ,
вот это отображается в /addnews.html
<tr><td> 

            <div id="MapWrap" style="width:700px; height:400px"></div>

            <script type="text/javascript">

                DG.load(function() {

                    var myMap = new DG.Map('MapWrap');

                    myMap.setCenter(new DG.GeoPoint(129.72836632538,62.028258660306));

                    myMap.setZoom(13);

                    myMap.controls.add(new DG.Controls.Zoom());

                    myMap.controls.add(new DG.Controls.FullScreen());

                    myMap.setMinZoom(11);



                    var observers = [];

                    var marker = null;

                    var rightClickCB = function(evt){

                        var pnt = evt.getGeoPoint();

                        if (marker != null) {

                            myMap.markers.remove(marker);

                        }

                        marker = new DG.Markers.Common({geoPoint: pnt});

                        myMap.markers.add(marker);

                

                    var param = document.getElementById("xfields[mapssspew]");

                    param.value = pnt.getLon([xfvalue_mapssspew]) + ':' + pnt.getLat([xfvalue_mapssspew2]);

                    }

                    observers[0] = myMap.addEventListener(myMap.getContainerId(), 'DgClick', rightClickCB);

                });

        </script>

        </td></tr>

FeDykt
Юзер

FeDykt - 9 августа 2012 21:25 -

А вот этот код в полной новости

<div id="MapWrap" style="width:538px; height:500px"></div>
              <script type="text/javascript">
                    DG.load(function() {
                        var lon =;
                        var lat =;
                        var myMap = new DG.Map('MapWrap');
                        myMap.setCenter(new DG.GeoPoint(lon, lat));
                        myMap.setZoom(16);
                        myMap.controls.add(new DG.Controls.Zoom());
                        myMap.controls.add(new DG.Controls.FullScreen());
                        myMap.setMinZoom(11);

                        var myBalloon = new DG.Balloons.Common({
                            geoPoint: new DG.GeoPoint(lon, lat),
                            contentHtml: '123'
                        });
                        
                        var marker = new DG.Markers.Common({
                            geoPoint: new DG.GeoPoint(lon, lat),
                            clickCallback: function() {
                                 if (! myMap.balloons.getDefaultGroup().contains(myBalloon)) {
                                    myMap.balloons.add(myBalloon);
                                } else {
                                    myBalloon.show();
                                }
                            }
                        });
                        myMap.markers.add(marker);
                    });    
                </script>



var lon = ;
var lat = ;


пустые..

ПафНутиЙ
Админ

ПафНутиЙ - 9 августа 2012 22:03 -

а при редактировании новости эти данные есть?
допполя правильно указаны в скрипте? (на сайте mapssspew)

если они пустые, значит не записались в новость.

Каков вопрос - таков и ответ. Просто помните об этом.

FeDykt
Юзер

FeDykt - 9 августа 2012 22:05 -

ПафНутиЙ,
да, доп. поля указаны правильно.
при редактировании координаты в эти поля не записались.

FeDykt
Юзер

FeDykt - 10 августа 2012 01:58 -

Просьба удалить пост, нашел решение факйеее (я невоспитанный дебил) )

Чтобы комментировать - войдите или зарегистрируйтесь на сайте

Похожие вопросы

наверх