Клуб API Карт

как создать ссылку на Янедекс Картах, чтобы при клике по ней пользователь видел метку на карте???

brezhnevk
17 июля 2012, 19:58

как создать ссылку на Янедекс Картах, чтобы при клике по ней пользователь видел метку на карте??? 

пол года назад написал генератор и он выдавал мне ссылки в формате::: 

http://maps.yandex.ru/?l=maps&ll=85,123456,55,1234&pt=85,123456,55,1234&z=13

но сейчас это Щастье уже не работает... ((( 

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

заранее всем большое спасибо за поиск идей!!! 

з.ы. ссылки генерирует экселевский файлик, в котором я сам прописываю широту и долготу. на выходе получаю готовые ссылки...

1 комментарий
Подписаться на комментарии к посту

Возможно, вам поможет фрагмент моего кода (сделанный в свое время на основе примеров к апи)

У меня пользователи генерят ссылки друг другу, щелкая по карте в нужном месте (если включен соотвествующий переключатель, разрешающий генерацию меток) и задавая сопроводительное описание к метке в текстовом поле с id="msg". Карта у меня именуется myMap.

function getParam (name, location) {
location = location || window.location.hash;
var res = location.match(new RegExp('[#&]' + name + '=([^&]*)', 'i'));
return (res && res[1] ? res[1] : false);
}

function setLocationParam (coords) { //ну, тут у вас будет свой способ генерации ссылки
var params = [
  'center=' + coords, // карта у получателя ссылки будет центрироваться на метке
  'text='+document.getElementById('msg').value, //в теле ссылки передаю простой поясняющий текст
  'zoom=' + myMap.getZoom() ]; //увеличение карты передаю то же, что и в данный момоент у пользователя, гененирующего ссылку
var encURI=encodeURI(params);
myurl=window.location+"#"+encodeURI(params.join('&')); //собственно, сама ссылка в сборе
}

function setMapStateByParam () { //эта функция вызывается при инициализации карты. Если вместе с адресом пришли параметры, карта настраивается на них
var hashCenter = getParam('center'),
hashZoom = getParam('zoom');
if (hashCenter) {
myMap.setCenter(hashCenter.split(','));
var myGeoObject = new ymaps.GeoObject({
geometry:{
type: "Point",
coordinates: myMap.getCenter()
},
  properties:{ // ну, это оформление метки по вкусу. у меня - красная метка с восклицательным знаком, хинтом "внимание", а в балуне открывается пересланный текст
iconContent: "!",
hintContent: "Важная информация",
balloonContent: decodeURI(getParam('text')),
}
},
{
balloonCloseButton: true,
preset: "twirl#redIcon"
} );
myMap.geoObjects.add(myGeoObject);
}
if (hashZoom) {
myMap.setZoom(hashZoom);
}
}

 

Как я уже писала - генерация ссылки у меня вешается на клик по карте

myMap.events.add('click', function (e) {
var coords = e.get('coordPosition');
setLocationParam(coords);

........
}) 

 

А проверку - надо ли выводить метку на карту я делаю в удобном месте инициализации карты

function init (){

...

myMap = new ymaps.Map('map', {
center: [0, 0],
zoom: 2,
// Указываем ключ нашего типа карты
type: 'my#world'
}, {
maxZoom: 23, // Максимальный коэффициент масштабирования для заданной проекции.
minZoom: 0, // Максимальный коэффициент масштабирования
projection: myProjection
}); 

....

setMapStateByParam();

.....