Объект на Яндекс карте

#
Объект на Яндекс карте
Подключаем скрипты яндекса, я добавил в основной шаблон:
<script src="//api-maps.yandex.ru/2.0/?load=package.standard&lang=ru-RU" type="text/javascript"></script>

Далее в макете в XSL в нужное место вставляем обработчик

<script type="text/javascript">    
var myMap;    
ymaps.ready(init);    
function init () {    
ymaps.geocode('<xsl:value-of select="property_value[tag_name='city']/value"/>, <xsl:value-of select="property_value[tag_name='address']/value"/>', {results: 1}).then(function (res) {    
var firstGeoObject = res.geoObjects.get(0),    
myMap = new ymaps.Map('map', {    
center: firstGeoObject.geometry.getCoordinates(),    
zoom:17    
});    
myMap.controls    
.add('zoomControl', {left: 5, top: 5})    
.add('typeSelector')    
.add('mapTools', {left: 35, top: 5});
firstGeoObject.options.set('preset', 'twirl#buildingsIcon');
myMap.geoObjects.add(firstGeoObject);    
});}    
</script>


Ну а дальше там где хотим видеть карту вставляем меня на нужную высоту и ширину, либо в последствии можно стилем описать вывод
<div id="map" style="width: 800px; height: 400px;"></div>

Цитата:
<xsl:value-of select="property_value[tag_name='city']/value"/>, <xsl:value-of select="property_value[tag_name='address']/value"/>
Значения соответственно подставляем свои.

Решение было приватизировано на просторах интернета

В Довесок если нужно на одной карте несколько объектов вывести то используем код:
<script type="text/javascript">
        ymaps.ready(function () {
            var map = new ymaps.Map('map', {
                    center: [ 55.734046, 37.588628 ],
                    zoom: 9,
                    behaviors: ['default', 'scrollZoom']
                });

            var mGeocoder = new MultiGeocoder({ boundedBy : map.getBounds() });

            // Геокодирование массива адресов и координат.
            mGeocoder.geocode([
                "Москва, Слесарный переулок, д.3",
                "Люберцы, Октябрьский проспект д.143",
                [ 55.734046, 37.588628 ],
                "Мытищи, ул. Олимпийский проспект, владение 13, корпус А",
                "Москва, 3-я Хорошовская улица д.2, стр.1",
                "Москва, Нижний Сусальный переулок, д.5, стр.4"
            ])
            .then(function (res) {
                    // Асинхронно получаем коллекцию найденных геообъектов.
                    map.geoObjects.add(res.geoObjects);
                },
                function (err) {
                    console.log(err);
                });
        });
    </script>

так как не силен в кодировании то сам не смог разобраться как сделать чтоб центр координат получался автоматически как в первом варианте
и для второго варианта нужны будут скрипты
/**
* @fileOverview
* Пример реализации функциональности множественного геокодирования.
* Аналогичная разработка для первой версии АПИ.
* @see http://api.yandex.ru/maps/doc/jsapi/1.x/examples/multiplygeocoding.html
* @example

   var multiGeocoder = new MultiGeocoder({ boundedBy : map.getBounds() });

   multiGeocoder
       .geocode(['Москва, Льва Толстого 16', [55.7, 37.5], 'Санкт-Петербург'])
           .then(
               function (res) {
                   map.geoObjects.add(res.geoObjects);
               },
               function (err) {
                   console.log(err);
               }
           );
*/

/**
* Класс для геокодирования списка адресов или координат.
* @class
* @name MultiGeocoder
* @param {Object} [options={}] Дефолтные опции мультигеокодера.
*/
function MultiGeocoder(options) {
    this._options = options || {};
}

/**
* Функция множественнеого геокодирования.
* @function
* @requires ymaps.util.extend
* @see http://api.yandex.ru/maps/doc/jsapi/2.x/ref/reference/util.extend.xml
* @requires ymaps.util.Promise
* @see http://api.yandex.ru/maps/doc/jsapi/2.x/ref/reference/util.Promise.xml
* @name MultiGeocoder.geocode
* @param {Array} requests Массив строк-имен топонимов и/или геометрий точек (обратное геокодирование)
* @returns {Object} Как и в обычном геокодере, вернем объект-обещание.
*/
MultiGeocoder.prototype.geocode = function (requests, options) {
    var self = this,
        size = requests.length,
        promise = new ymaps.util.Promise(),
        geoObjects = new ListCollection();

    requests.forEach(function (request, index) {
        ymaps.geocode(request, ymaps.util.extend({}, self._options, options))
            .then(
                function (response) {
                    var geoObject = response.geoObjects.get(0);

                    geoObject && geoObjects.add(geoObject, index);
                    --size || promise.resolve({ geoObjects : geoObjects });
                },
                function (err) {
                    promise.reject(err);
                }
            );
    });

    return promise;
};

и
function ListCollection() {
    ListCollection.superclass.constructor.apply(this, arguments);
    this._list = [];
}

ymaps.ready(function () {
    ymaps.util.augment(ListCollection, ymaps.GeoObjectCollection, {
        get: function (index) {
            return this._list[index];
        },
        add: function (child, index) {
            this.constructor.superclass.add.call(this, child);

            index = index == null ? this._list.length : index;
            this._list[index] = child;

            return this;
        },
        indexOf: function (o) {
            for(var i = 0, len = this._list.length; i < len; i++) {
                if(this._list[i] === o) {
                    return i;
                }
            }

            return -1;
        },
        splice: function (index, number) {
            var added = Array.prototype.slice.call(arguments, 2),
                removed = this._list.splice.apply(this._list, arguments);

            for(var i = 0, len = added.length; i < len; i++) {
                this.add(added[i]);
            }

            for(var i = 0, len = removed.length; i < len; i++) {
                this.remove(removed[i]);
            }

            return removed;
        },
        remove: function (child) {
            this.constructor.superclass.remove.call(this, child);

            // this._list.splice(this.indexOf(child), 1);
            delete this._list[this.indexOf(child)];

            return this;
        },
        removeAll: function () {
            this.constructor.superclass.removeAll.call(this);

            this._list = [];

            return this;
        },
        each: function (callback, context) {
            for(var i = 0, len = this._list.length; i < len; i++) {
                callback.call(context, this._list[i]);
            }
        }
    });
});
Авторизация