Нужно переключить слой со Схемы на Народную карту. Перерыл документацию, ответа не нашел.
Добрый день. Пытаюсь разобратсья в новой версии API Яндекс.Карт 2.1.25. Но такое чувство, что документация устарела.
Добавляю на карту свой слой:
var MyLayer = function () {
var layer = new ymaps.Layer('путь к тайлам', {
projection: ymaps.projection.sphericalMercator,
});
// Копирайты
layer.getCopyrights = function () {
return ymaps.vow.resolve('Копирайты');
};
// Диапазон доступных масштабов
layer.getZoomRange = function () {
return ymaps.vow.resolve([7, 14]);
};
return layer;
};
ymaps.layer.storage.add('my_layers#topo', MyLayer);
ymaps.mapType.storage.add('my_map#topo', new ymaps.MapType(
'Топо-карта',
['my_layers#topo']
));
Затем создаю свой элемент выбора карты:
var myMap = new ymaps.Map("map", {
center: [58.598, 49.657],
zoom: 12,
autoCentering: true,
autoZooming: true,
controls: ["rulerControl", "typeSelector", "zoomControl", "fullscreenControl"],
}),
myMap.controls.add(new ymaps.control.TypeSelector(['my_map#topo', 'yandex#map', 'yandex#publicMap', 'yandex#satellite']));
Добрый вечер!
Вот какой возник вопрос....
У меня на карте есть Plaсemark, при нажатии на который всплывает Balloon. который в свою очередь имеет контент.
Контент этот содержит ссылку при нажатии на которую нужно осуществить переход к другой карте в рамках действующего окна...как это лучше реализовать (типы карт уже созданы)? метод ONCLICK=map.setType не получается...
С уважением, Дмитрий
var skPlacemark = new ymaps.Placemark([-0.17, -0.76], {
hintContent: 'Север',
balloonContent: '<h3>Север</h3>'+ '<br />' + '<img src="#" width=90 />' + '<br />' +'Верх' + '<br />' +
'<a href=# >Ссылка_1 </a>' +' | '+ '<a href=#> Ссылка_2 </a>' +' | '+ '<a href=#> Ссылка_3 </a>',
},
Как при добавлении встроенного слоя указать zIndex, с которым он должен отображаться?
Мне нужно, чтобы гибрид оставался сверху, какие бы слои после него не было добавлены:
map.layers.add('yandex#skeleton');
map.layers.add('yandex#satellite');
Добрый день, не могу разобраться как изменить название элемента управления "Слои" на "Схема"
вот тут это реализовано, можно ли это сделать?
P.S. разобрался что по указанной ссылке используется версия карт 2.0 ; можно ли изменить назание элемента в версии 2.1 ?)
Как подключить тип карты? Пробую так http://jsfiddle.net/jfGRL/ , и так http://jsfiddle.net/jfGRL/1/ .
При втором варианте, карта работает, но по старой схеме, а не с типом "Народная карта"...
В документации не нашел примера как это делается...
Параметры карты
Основными параметрами карты являются DOM-элемент, в котором размещается карта (область показа), участок отображаемой местности (область картографирования) и способ ее изображения (тип карты).
Далее идет пример, но примера как подключать тип карты нет...
Добрый день. Я новичок. У меня не выводится элемент типа карты и метка. Подскажите, пожалуйста, в чем может быть дело.
<script src="http://api-maps.yandex.ru
<script type="text/javascript">
YMaps.jQuery(window).load(function () {
var map = new YMaps.Map(YMaps.jQuery("#map_oaost")[0]);
map.setCenter(new YMaps.GeoPoint(33.678519,57.855818), 13, YMaps.MapType.MAP);
map.addControl(new YMaps.Zoom());
map.addControl(new YMaps.ToolBar());
YMaps.MapType.PMAP.getName = function () { return "Народная"; };
map.addControl(new YMaps.TypeControl([
YMaps.MapType.MAP,
YMaps.MapType.SATELLITE,
YMaps.MapType.HYBRID,
YMaps.MapType.PMAP
], [0, 1, 2, 3]));
YMaps.Styles.add("constructor#pmwtmPlacemark", {
iconStyle : {
href : "images/logo311.png",
size : new YMaps.Point(125,130),
offset: new YMaps.Point(-8,-27)
}
});
map.addOverlay(createObject("Placemark", new YMaps.GeoPoint(33.678519,57.855818), "constructor#pmwtmPlacemark", "ОАО Спецтехника"));
function createObject (type, point, style, description) {
var allowObjects = ["Placemark", "Polyline", "Polygon"],
index = YMaps.jQuery.inArray( type, allowObjects),
constructor = allowObjects[(index == -1) ? 0 : index];
description = description || "";
var object = new YMaps[constructor](point, {style: style, hasBalloon : !!description});
object.description = description;
return object;
}
});
</script>
<div id="map_oaost" style="width:700px; height:400px;"></div>
Карта от края до края страницы. Добавляю контрол типа карты слева
map.controls.add(new ymaps.control.TypeSelector({
options :
float : 'left'
}))
Список открывается так, что его левая часть уходит за границы страницы.
2.1 beta
Помогите разобраться пожалуйста. Я хочу на карту добавить элемент управления. Можно добавить так:
myMap.controls.add('typeSelector',{top:100, left:50});
но можно и с помощью конструктора:
var myTypeSelector = new ymaps.control.TypeSelector();
Как тогда в этом случае задать отступы? В документации указаны параметр options, свойство position. Но как их правильно вписать в конструктор?
Всем привет.
Сейчас столкнулся с ошибкой. Воспроизводимой.
Загружаем АПИ
http://api-maps.yandex.ru
[
"yandex#map",
"yandex#satellite",
"yandex#hybrid",
"yandex#publicMap",
"yandex#publicMapHybrid"
]));
Ну и все, он пропадает.
Если народную карту не грузим - контролы на английском. Если грузим - контрола нет.
Если включаю русскую кодировку - все ОК в любом случае
Контрол не создается, есть ошибка
как отследить смену типа карты? мне нужно что бы когда сменили тип карты, я мог кудато записать значение getTYPE()
Доброго времени суток. Создал карту, расположил коллекцию меток на ней, при клике на ссылку перемещаюсь, но одна метка находится там, где народная карта безсильна! Хочу, чтоб при клике на ссылку ПРОИЗВОДСТВО карта менялась на спутник к примеру, ну и соответственно, при клике на другую ссылку, возвращалась народная
Здесь задается тип по умолчанию
var myMap = new ymaps.Map('map', {
center: [49.523295,42.20558], // Производство
zoom: 16,
type: 'yandex#publicMap'....
я так понял нужно вызвать метод TypeChange, но не понял к чему ее привязывать, в какой части кода расположить, можно пример или совет? В мануале читал, но не до конца понял..
Иногда кнопка схема на карте становится вот такого размера. После клика на нее все становится нормально. Смотрю элемент в дум структуре, у него почему то ширина 364рх
Добрый день!
Такой вопрос:
у меня для некоторых участков местности есть собственные тайлы, я создаю пользователькую карту и работаю с ними через эту карту.
А можно ли реализовать, чтобы при уровнях зума меньше какого-то (а желательно еще и при выходе за пределы некоего заданного региона) карта переключалась на Яндекс.Карту. А при попадании в заданный регион и выходе на заданный уровень зума - переключалось обратно на пользовательскую карту?
(собственно говоря, я не соображу, с помощью чего именно переключать типы карт. С помощью стандартного селектора на карте не хочу, интересен вариант именно программного переклочения)
Еще вопрос:
Хранилище по ключу Storage - что именно возращет методом get, если данного ключа в хранилище нет (нужно для того, чтобы перед добавлением объекта в хранилище проверить, есть он уже там или нет)
Если отображать карту из скрытого блока с помощью
myMap.setCenter([...]);
myMap.container.fitToViewport();
переключатель типа карты склеивается
поскажите, как можно перерисовать его при показе
var googleLayer = new ymaps.Layer('http://mt0.google.com/vt/
projection: ymaps.projection.sphericalMercator,
transparent: true
});
ymaps.layer.storage.add('test#layer', googleLayer);
var myMapType = new ymaps.MapType('Detail', 'test#layer');
ymaps.mapType.storage.add('my#type', myMapType);
var typeSelector = new ymaps.control.TypeSelector();
typeSelector.addMapType('my#type');
myMap.controls.add(typeSelector, {top: 10, right: 10});
Не работает слой, когда выбираю его в селекторе =\ помогите плз
Как сделать чтобы спутниковая карта была включена по умочанию, а не та что по умолчанию сейчас?
Спасибо.
Доброго времени!
Идея такая, что, зарегиный юзер открывает тот тип карты (Схема, Спутник, Гибрид) который сохранил, Сейчас я сделал так:
var x = m.getType();
var s = x.getName();
switch( s ){
case "Схема":this.yaty = 'YMaps.MapType.MAP';break;
case "Спутник":this.yaty = 'YMaps.MapType.SATELLITE';break;
case "Гибрид":this.yaty = 'YMaps.MapType.HYBRID';break;
}
this.ty = this.yaty;
}
.....
this.map = new YMaps.Map( this.canvas );
this.map.setCenter( new YMaps.GeoPoint(this.lon, this.lat), this.zoom, eval(this.ty) );
this.yaty = this.ty;
...
YMaps.Events.observe( this.map, this.map.Events.TypeChange, YaChange, this );
Тупо, конечно, но работает...пока... у меня.
С гуглом вышло проще, и на мой взгляд более стабильно:
function GooChangeMapId(){
var s = mapper.map.getMapTypeId();
mapper.ty = "google.maps.MapTypeId."+s.toUpperCase();
mapper.gooty = mapper.ty;
}
,,,,,
var mapCenter = new google.maps.LatLng( this.lat, this.lon );
var mapOptions = {
zoom: this.zoom,
center: mapCenter,
mapTypeId: eval(this.ty)
}
this.gooty = this.ty;
this.map = new google.maps.Map( this.canvas, mapOptions );
,,,,
google.maps.event.addListener(this.map, 'maptypeid_changed', GooChangeMapId );
Моя реализация Яндекса меня тревожит: кто сказал что на др компе имена карт не изменятся и останусь я в неудел....
Есть ли более стабильный вариант?
Спасибо
метод map.getType() чо то не канает(
на выходе получается: [object Object]
Здравствуйте.
Создаю след. группу:
group.add(new YMaps.YMapsML('<%=yMapLink[j]%>')); // Подгружаю карту из сервиса "Мои карты".
Прохожусь по всей группе
l.forEach(function(obj)
и добавляю на карту
map.addOverlay(obj);
При этом obj.name; obj.id; равны null. Хотя xml эти поля содержит.
В чем может быть проблема?