Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Яндекс карты 2.1 (https://javascript.ru/forum/misc/47116-yandeks-karty-2-1-a.html)

pepper 09.05.2014 11:53

Яндекс карты 2.1
 
соорудил вот такой скрипт:
<script src="http://api-maps.yandex.ru/2.1/?load=package.full&lang=ru-RU" type="text/javascript"></script>
<script type="text/javascript">
var myMap;
ymaps.ready(init);
function init () {
ymaps.geocode('г.Тверь, ул. Ленина, 7', { results: 1 }).then(function (res) {
var firstGeoObject = res.geoObjects.get(0),
    myMap = new ymaps.Map('map', {
        center: firstGeoObject.geometry.getCoordinates(),
        zoom: 17
    }); 
var myPlacemark = new ymaps.Placemark(myMap.getCenter(), {
balloonContentBody: [
'<address>',
'<strong>объект</strong>',
'</address>'
].join('  ')
}, {
preset: 'twirl#Icon'
});
myMap.geoObjects.add(myPlacemark);   
});
}
</script>
<div id="map" style="width: 100%; height: 100%"></div>


Карта получается по центру, мне нужно чтобы центральная найденная точка смещалась влево.

Нашел документацию но собрать все это дело не могу:

// Сдвинем карту на 10 пикселей влево
var position = map.getGlobalPixelCenter();
map.setGlobalPixelCenter([ position[0] - 10, position[1] ]);


http://api.yandex.ru/maps/doc/jsapi/...balPixelCenter


В JS не силен потому и прошу помощи.

depp 09.05.2014 20:41

у них ужаснейшая документация. в вашем случае объект карты это myMap. значит:
var position = myMap.getGlobalPixelCenter();
myMap.setGlobalPixelCenter([ position[0] - 10, position[1] ]);

pepper 09.05.2014 23:09

Цитата:

Сообщение от depp (Сообщение 311081)
у них ужаснейшая документация. в вашем случае объект карты это myMap. значит:
var position = myMap.getGlobalPixelCenter();
myMap.setGlobalPixelCenter([ position[0] - 10, position[1] ]);

Работает. Но!
Согласен, к сожалению это не то тут смещает только карту метка так и остается в центре

depp 10.05.2014 01:03

firstGeoObject.geometry.getCoordinates() - попробуйте из этого объекта получить координаты, изменить их как вам надо и подставить потом их обратно.
либо измените координаты точки вот в этой строке:
var myPlacemark = new ymaps.Placemark(myMap.getCenter(), {
тут уже знаете как.

pepper 10.05.2014 10:05

Цитата:

Сообщение от depp (Сообщение 311113)
firstGeoObject.geometry.getCoordinates() - попробуйте из этого объекта получить координаты, изменить их как вам надо и подставить потом их обратно.
либо измените координаты точки вот в этой строке:
var myPlacemark = new ymaps.Placemark(myMap.getCenter(), {
тут уже знаете как.

Нужно чтоб и точка и карта были смещены на 200px.
В JS не силен потому и прошу помощи.

depp 10.05.2014 11:39

<script src="http://api-maps.yandex.ru/2.1/?load=package.full&lang=ru-RU" type="text/javascript"></script>
<script type="text/javascript">
var myMap;
ymaps.ready(init);
function init () {
ymaps.geocode('г.Тверь, ул. Ленина, 7', { results: 1 }).then(function (res) {
var firstGeoObject = res.geoObjects.get(0),
    myMap = new ymaps.Map('map', {
        center: firstGeoObject.geometry.getCoordinates(),
        zoom: 17
    }); 

var position = myMap.getCenter();

myMap.setCenter([ position[0], position[1]-0.006 ]);
var myPlacemark = new ymaps.Placemark([ position[0], position[1]-0.006 ], {
balloonContentBody: [
'<address>',
'<strong>объект</strong>',
'</address>'
].join('  ')
}, {
preset: 'twirl#Icon'
});
myMap.geoObjects.add(myPlacemark);   
});
}
</script>
<div id="map" style="width: 100%; height: 100%"></div>

у меня вот так получилось.

depp 10.05.2014 11:40

там в координатах gps точки двигаются, а не в пикселях. в пикселях у меня не получилось. возможно спец по яндекс картам скажет как правильно в пикселях. ибо у них в документации полная ахинея написана.

pepper 10.05.2014 18:28

Цитата:

Сообщение от depp (Сообщение 311145)
там в координатах gps точки двигаются, а не в пикселях. в пикселях у меня не получилось. возможно спец по яндекс картам скажет как правильно в пикселях. ибо у них в документации полная ахинея написана.

Мне впринципе неважно в пикселях или как еще.

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

depp 11.05.2014 04:22

скинь картинку чтоли что ты хочешь в итоге получить.

pepper 11.05.2014 17:16

Сейчас так:
http://i023.radikal.ru/1405/58/f880becb0ba6.png

Нужно так:
http://i055.radikal.ru/1405/be/ffc4937b619e.png

Сместить точку и карту влево.


Часовой пояс GMT +3, время: 22:28.