Добрый всем вечер!
Прошу помочь Разобраться...
В примере щелкаем по карте и получаем координаты точки и адрес. Вроде всё просто и в 2.0 всё работает, но стоит подключить 2.1, как выдает ошибку и отказывается работать :(
Спасибо заранее!
Добрый всем вечер!
Прошу помочь Разобраться...
В примере щелкаем по карте и получаем координаты точки и адрес. Вроде всё просто и в 2.0 всё работает, но стоит подключить 2.1, как выдает ошибку и отказывается работать :(
Спасибо заранее!
Разрабатываю небольшой скрипт управления метками на карте. В частности, делаю внешний поиск по карте (по адресам и объектам), для чего использую Геокодер (http запрос). Возникла проблема с добавлением метки по найденному адресу.
Собственно, код:
ymaps.ready(init);var myMap,mySearchPlacemark;function init(){myMap = new ymaps.Map ("map", {center: [55.76, 37.64],zoom: 9,behaviors: ['default', 'scrollZoom']});
}
// Функция вешается на onclick событие input'a
function addAddress(){mySearchPlacemark = new ymaps.Placemark([55.270659160010815,38.68370117187 498], { hintContent: 'Москва!',balloonContent: 'Столица России'});myMap.geoObjects.add(mySearchPlacemark);
}
Когда в поле input формы находится адрес с точностью до дома, вызывается функция addAddress по событию onclick, но ничего не происходит. Метка не добавляется. При этом и ошибок нет.
В чем может быть проблема?
Мне нужно реализовать отображение одного либо другого набора меток на карте в записимости от масштаба.
При большом масштабе будет показана часть из 32k меток, для меньших масштабов будут показываться другие, заранее просчитанные усредненные метки (кластеризатор с таким количеством не справляется).
Для реализации я решил отслеживать изменение масштаба. Но так как перестраивание кластеризатора с таким количеством точек тяжелая операция (4-15 сек в зависимости от масштаба) я подумал, что можно убирать его с карты перед изменением масштаба, а после, если нужно, добавлять обратно, если масштаб не подходит - отображать другой кластеризатор с меньшим количеством меток.
Но вот никак не понятно из документации как это сделать. Пробовал что-то достать из actionbegin - вообще не понял как он работает, а по сути мне всего лишь нужно узнать что именно за действие началось.
Короче, нужно либо сделать то, что я придумал, либо как-то иначе оптимизировать кластеризатор. Как вариант - у каждой метки есть один параметр, по которому при zoom < 12 их можно склеивать вместе, не рассчитывая больше ничего, и желательно кешировать эту информацию (это если можно переопределить механизм определения того, как кластеризатор определяет какие точки склеивать; в документации этого не сказано, реверс инжиниринт пока не делал на предмет такой возможности).
Добрый день!
Кажется, я заметил баг в ответе от геокодера. Если я делаю запрос на дом, находящийся в регионе РФ (Питер, Ижевск и т.п.), в котором присутствует несколько корпусов, но в запросе я не детализирую это, ответ содержит ветку "AdministrativeArea". Примеры:
Санкт-Петербург, пр. Обуховской обороны, д. 269
Ижевск, ул. Университетская, д. 201
НО!
Почему-то если я спрашиваю про адрес в Москве (???), который тоже содержит корпуса, ветка "AdministrativeArea" не возвращается!
Москва, ул. Маршала Новикова, д. 2
В связи с этим, вопрос к разработчикам: это баг? Или так и должно быть? И если да, как мне скорректировать в таком случае запрос? Хотелось бы получать доступ к региону.
Добрый день!
Иммется код:
Упорно не выдает алерт при клике на балуна!
Если в этом примере из песочницы http://api.yandex.ru/maps
в массив points добавить 350 объектов, затем нажать автообновление и начать приближать, то на определенном шаге возникает ошибка. В консоле это выглядит так: Uncaught TypeError: Cannot read property '0' of undefined
Почему она возникает и как с ней бороться
Столкнулся, когда пытался переехать с 2.0 на 2.1
Баг заглючается в том, что нельзя добавлять ListBoxItem в ListBox после создания.
Возможно они просто не рендерятся.
Точнее, если сразу добавить, то все ОК. Но если чуть погодя, то не получается (а у меня они загружаются ajax-запросом)
Проще всего продемонстрировать примером из песочницы:
Исходник: http://api.yandex.ru/maps
Модифицированная версия: http://jsbin.com/hawip/1/edit?js,output (изменения сразу после инстанцирования listBox)
// Пытаюсь добавить пункты отложено
setTimeout(function(){
listBox.add(listBoxItems[0]);
listBox.add(listBoxItems[1]);
}, 100);
Доброго дня.
Подскажите, реализуемо ли подобное? Если да, то какими средствами.
Строим маршрут по двум точкам. и показываем на карте только те, объекты из бд, координаты которых соответствуют маршруту.
Сложность в проверке координат на принадлежность к маршруту
Доброго дня! Столкнулся с задачей, но не знаю
как ее решить. Имеются балуны, есть некая
точка. Как вывести балуны в радиусе 10 км от
этой точки?
В общем столкнулся с такой проблемой, что нужно поставить EN версию народной карты, но вместо карты выводиться это:
Подключаю так:
<script src="http://api-maps.yandex.ru/2.0-stable/?load=package " type="text/javascript"></script>.full&mode=release&am p;lang=en_US&coordord er=longlat
Две версии:
Русская, которая отображается нормально.
Английская в которой не хочет работать.
В чем может быть проблема? За ранее спасибо.
если у меня в js есть var coord = '30.0000, 40.0000' к примеру и ставлю эту переменную сюда myPlacemark1 = new ymaps.Placemark([coord]) то кордината не считывается и у меня загружается пустая карта, а если так myPlacemark1 = new ymaps.Placemark([53.731538, 91.440641]) то все ок. Проблема в том что мне нужно получить кординату которая присвоена обьекту по клику, по этому нужен var. Как можно решить эту проблему?
Сдела мобильное приложение (PhoneGap и JQuery mobile).
Использую карты Yandex, если загружаю на сайт (то есть мобильную версию с телефона), то все работает, если экспортирую через phonegap и пытаюсь запустить в приложении (android) ничего не грузится.
Подскажите реально ли заставить связку работать.
Доброе утро!
На карту нанесены различные объекты - метки со своими картинками, многоугольники и т.д. Этих объектов нет в static-api.
Как можно сохранить выведенное изображение в файл?
Всем привет. Есть задача - на сайте хочу сделать сборник маршрутов для поездок на внедорожном мотоцикле (через лес, поля и т.д.)
Для начала я нашел gps трекер на свой телефон (Samsung Galaxy Nexus офф. прошифка) это трекер от google "Мои треки"
Там есть отличная возможность записывать и экспортировать треки в kml или gpx формат.
Я почитал документацию и посмотрел песочницу по теме. Кое что получается но как то кривовато.
Вот как это выглядит на оригинальных гугл картах
Вот как это выглядит на Яндекс картах с KML форматом
Вот как это выглядит на Яндекс картах с GPX форматом
Как видно не очень то презентабельно. Что можете посоветовать? Как лучше поступить?
И еще если в примере изменить координаты (или даже не в примере а впесочнице) то мой google chrome просто начинает сьедать всю оперативку и половину процессора и ничего не отображает. В ИЕ 11 показывает просто заглушку с логотипом яндекса.
Как решить данную проблему?
Всем заранее большое спасибо!
На карту выведены объекты (метки, нарисованные точки, мноугольники и т.д).
Можно ли это представить в текстовом виде (выполнить сериализацию в XML) так, чтобы вставим куда-либо это текст открыть карту с нарисованными на ней объектами?
допустим создали метку
var newmark = new ymaps.Placemark(coords, {}, {balloonContentLayout: BalloonContentLayout});
на базе своего предопределенного лейаута
BalloonContentLayout = ymaps.templateLayoutFactory.createClass(
hmtlCode,
{
build: function () {
this.constructor.superclass.build.call(this);
},
AnyMethod: function (e) {
//
}
}
);
как теперь из AnyMethod получить доступ к своему владельцу Placemark?
Добрый день!
В 2.1 есть элемент управление "Поиск", с помошью него можно найти адрес на карте и при этом, как я понимаю, запрос геокодера не используется.
Задача: Найти на карте адрес и установить центр карты на найденный адрес при этом не отправляя запрос геокодеру, что бы не превышать лимит, т.к. пользователь может искать по карте много раз. После чего пользователь ставит метку на карту, и только после сохранения формы обращатся к геокодеру для получения координат метки.
имею в распоряжении несколько отрисованых карт размером 5000 - 7000 px.
Решил их внедрить на движок Яндекс карт, спешу отметить опыта в прорамиронании нету никакого, все делал по мануалам.
Нашел тему в сети http://webmap-blog.ru/yan
Теперь о помощи.
1) Как отображать карту только в ее границах?
2) убрать лишний зум - имею ввиду чтобы я зумил только до определеных границ. Чтоб было понятнее, мне ненужно чтобы я видел подложку только карту.
исходник карты тут - http://yadi.sk/d/nweuymitPGawA если нужно
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtm
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ru" lang="ru">
<head>
<title>Генплан МО Анапа</title>
<script src="http://api-maps.yandex.ru
<script type="text/javascript">
window.onload = function () {
var options = {
tileUrlTemplate: "./%z/tile-%x-%y.jpg",
controls: {
typeControl: false,
miniMap: false,
toolBar: false,
scaleLine: false
},
scrollZoomEnabled: true,
mapCenter: new YMaps.GeoPoint(-174.745788574219, 84.5401399840571),
backgroundMapType: YMaps.MapType.NONE,
mapZoom: 10,
isTransparent: true,
smoothZooming: true,
layerKey: "my#layer",
mapType: {
name: "Генплан",
textColor: "#000000"
},
copyright: ""
},
map = new YMaps.Map(document.getElementById("YMapsID")),
myData = new YMaps.TileDataSource(options.tileUrlTemplate, options.isTransparent, options.smoothZooming);
myData.getTileUrl = function (tile, zoom) {
return this.getTileUrlTemplate().replace(/%x/i, tile.x).replace(/%y/i, tile.y).replace(/%z/i, zoom);
}
var MyLayer = function () {
return new YMaps.Layer(myData);
}
YMaps.Layers.add(options.layerKey, MyLayer);
var mapLayers = options.backgroundMapType ? options.backgroundMapType.getLayers() : [],
myMapType = new YMaps.MapType(YMaps.jQuery.merge(mapLayers, [ options.layerKey ]), options.mapType.name, { textColor: options.mapType.textColor });
map.setCenter(options.mapCenter, options.mapZoom, myMapType);
if (options.copyright) {
map.addCopyright(options.copyright);
}
if (options.controls.typeControl) {
map.addControl(new YMaps.TypeControl([ myMapType, YMaps.MapType.MAP, YMaps.MapType.SATELLITE, YMaps.MapType.HYBRID ], [1, 2, 3]));
}
if (options.controls.miniMap) {
map.addControl(new YMaps.MiniMap());
}
if (options.controls.toolBar) {
map.addControl(new YMaps.ToolBar());
}
if (options.controls.scaleLine) {
map.addControl(new YMaps.ScaleLine());
}
if (options.scrollZoomEnabled) {
map.enableScrollZoom();
}
map.addControl(new YMaps.Zoom());
}
</script>
</head>
<body>
<div id="YMapsID" style="width:100%;height:800px"></div>
</body>
</html>
перепробывал что мог перечитал кучу всего не могу понять, помогите мне и всем таким как я.
Есть задача вывода списка адресов в виде меток на Яндекс.Картах.
Адреса хранятся во внешней системе и периодически изменяются. Решено использовать следующий алгоритм:
1. Во внешней системе (не web) собирается список адресов, формируется запрос на геокодирование;
2. Результаты геокодирования сохраняются на сервер в формате JSON.
3. Клиент открывает страничку с картой, данные о координатах читаются из файла JSON и выводятся на карту.
С п.3 разобрался. Данные загружаются из файла на карту без проблем.
Встал вопрос с множественным геокодированием. Решил делать его на стороне сервера (как описано в документации). Но для множественного геокодирования необходим специальный Node.js-модуль (multi-geocode), который надо как то подключить (npm install multi-geocoder). Этот вариант выглядит несколько замороченным: нужно поставить менеджер пакетов, потом установить модуль (я сам не сетевой программист, поэтому для меня все это несколько непонятно). Хотя может я что то не понимаю и можно обойтись без установки менеджера пакетов?
Вторым вариантом является использование модуля из примера. Но метод geocode из данного примера возвращает коллекцию объектов, а не описание в формате GeoJSON или XML. И как эту коллекцию сохранить в файл я ума не приложу. Может кто то подскажет?
Собственно, подсмотрел идею на одном сайте. Суть такая: при нажатии на кнопку карта плавно и красиво перемещается по заданным координатам и открывает балун (?) точки. Не подскажете как это реализовано?
Пример того что подсмотрел: http://apple4you.ru/contacts/ Кнопки сверху.