Клуб API Карт

май 2010
Проблема с декартовыми координатами
mmolive
1 мая 2010, 12:46

Вобщем что-то я недопонимаю, подскажите пожалуйтса)

есть картинка 2560x2560 нарезанная на тайлы

вобщем создают систему координат:

...

var myCoordSystem = new YMaps.CartesianCoordSystem(
                new YMaps.Point(0, 2560),
 new YMaps.Point(2560, 0), 
            1, 
            5
            );

...

создаю карту


map = new YMaps.Map(YMaps.jQuery("#YMapsID")[0], {
                coordSystem: myCoordSystem 
            });

...

Все шикарно, карту кажет, но...

добавляю свою метку

...

var point=new YMaps.Point(1000, 1000);
map.addOverlay(new YMaps.Placemark(point,{style:s_boss}));
...

по сути вещей если карта 2560x2560 то метка должна оказаться на середине карты,

а она у меня далеко за ней. Подскажите как сделать так чтобы координаты соответсвовали пикселям картинки?

вот здесь работающий пример:

http://dev.mykotlas.ru/?do=map

2 комментария
API 1.x
вопрос про ozfx3
lavaget
2 мая 2010, 21:22

Хочу прилепить топографические километровки к ЯК. Чтобы порезать в тайлы, для начала их неплохо бы склеять, с обрезкой краев. Это я сделал программой Ozi Map Merge - получил отличную карту 1,7 гига. Вот только формат ozfx3 - а его только озик и понимает. Конвертеры demapper и питерский ozf2img с файлом не справились. Есть еще какие-то варианты превратить кучу привязанных листов в один привязанный графический файл для последующей порезки в тайлы?

1 комментарий
тайлы,API 1.x
Как сделать балун с описанием и фоткой?
novostrojka-by
3 мая 2010, 12:44

Есть группа объектов:

// Группы объектов
var groups = [
createGroup("Жилые дома", [
createPlacemark(new YMaps.GeoPoint(27.609945,53.944076), "АРЭСА на Олешева"),
createPlacemark(new YMaps.GeoPoint(27.592527,53.923594), "АРЭСА на Сурганова"),
createPlacemark(new YMaps.GeoPoint(27.589589,53.93126), "ЖК ПРЕСТИЖ")
], "default#redPoint"),
createGroup("Коммерческие помещения", [
createPlacemark(new YMaps.GeoPoint(27.520387,53.905473), "Бизнес центр SILVER TOWER"),
createPlacemark(new YMaps.GeoPoint(27.512091,53.883882), "Новая Грушевка"),
], "default#greenPoint"),
];

как сделать чтобы балун открывался с описанием объекта, линком и фоткой?

Есть пример?

6 комментариев
API 1.x,балун
Вставка карты на свой сайт.
dn444
3 мая 2010, 14:28

У меня почему-то не получается вставить карту на свой сайт, пишет неправильный код, подскажите, что делать?

9 комментариев
API 1.x
Как сделать группы меток активными
sinos
4 мая 2010, 00:44

Здравствуйте, есть проблема.

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



сайт Заозерное 

2 комментария
API 1.x
Декартовы координаты в YMapsML
mmolive
4 мая 2010, 10:36

Подскажите пожалуйста, можно ли вообще, и если можно то как использовать декартову систему для проставки меток из YMapsML.

слабал нечто подобное

<ymaps xmlns="http://maps.yandex.ru/ymaps/1.x" xmlns:gml="http://www.opengis.net/gml">
<Representation xmlns="http://maps.yandex.ru/representation/1.x">
    <View>
        <gml:boundedBy>
            <gml:Envelope>
                <gml:upperCorner>0 2560</gml:upperCorner>
                <gml:lowerCorner>2560 0</gml:lowerCorner>
            </gml:Envelope>
        </gml:boundedBy>
    </View>
    <Style gml:id="s_boss">
        <iconStyle>
            <href>/engine/modules/map/icons/boss.gif</href>
            <size x="10" y="10"/>
            <offset x="-5" y="-5"/>
        </iconStyle>
    </Style>
</Representation>
<GeoObjectCollection>
    <gml:featureMember>
        <GeoObject>
            <style>#s_boss</style>
         <gml:name>Превед</gml:name>
                <gml:Point>
                    <gml:pos>1000.0 1000.0</gml:pos>
                </gml:Point>
        </GeoObject>
    </gml:featureMember>
</GeoObjectCollection>
</ymaps>

карта инциализируется так:

        var myCoordSystem = new YMaps.CartesianCoordSystem(
                new YMaps.Point(0, 2560), // Координаты левого нижнего угла карты
            //new YMaps.Point(600, 400),
            new YMaps.Point(2560, 0), // Координаты правого верхнего угла карты
            1, // Длина единичного отрезка в метрах
            5
            );
          map = new YMaps.Map(YMaps.jQuery("#YMapsID")[0], {
                coordSystem: myCoordSystem // передаем нашу систему координат
            });

Но точка описанная в xml почему-то ставится в гео-координатах, а мне надо бы в декартовых

2 комментария
координаты,API 1.x,YMapsML
Сервис поиска координат
sapmelab
4 мая 2010, 15:11

Спасибо разработчикам - просто превосходно! http://api.yandex.ru/maps/tools/getlonglat/ добавилась возможность определения координат центра карты и zoom. Всвязи с этим возник вопрос - реализация формы с координатами - это некое дополнение к API, доступное через map.addControl()  или же сделано вручную? Если первое, то возможно ли увидеть простой пример, подобно тем, что сопровождают руководство разработчика?

2 комментария
API 1.x
Проблема определения оптимального масштаба
Alexandre.Gorobets
4 мая 2010, 16:23

Давно хотел написать об одном баге.
Пробуем искать: "Братск"

Проблема в том, что автоматически определяется масштаб "12", но дело в том что для "Схемы" карты такого масштаба нет, а есть она только для "Спутника".

Но т.к. режим "Схема" включен по умолчанию, хотелось бы показать пользователю более адекватную картинку (например, в уменьшенном масштабе), а не суровую надпись на сером фоне.

Я не нашел возможности как программно узнать, есть ли карта указанного типа для заданного масштаба.

 

5 комментариев
масштаб,область видимости
Не получается вставить карту на сайт
malknatal
5 мая 2010, 11:33

В соответствии с интсрукцей, получила API-ключ для сайта, затем в заголовке  скрипт для вызова API <script src="http://api-maps.yandex.ru/1.1/index.xml?key=API-ключ" type="text/javascript"></script> - соответственно с подстановкой ключа.

Дальше в коде страницы:

<div id="YMapsID-840" style="width: 90%; height: 371px;"><!-- Этот блок кода нужно вставить в ту часть страницы, где вы хотите разместить карту  (начало) -->
<script src="http://api-maps.yandex.ru/1.1/?key=ACYQ4UsBAAAAUj6vGwIA9QK_9QJkz1XXwd0Tsi064FyvcrEAAAAAAAAAAACN55MdbSSQFUKakhjeG7sYtVeGiw==&amp;wizard=constructor" type="text/javascript"></script>
<script type="text/javascript"><!--
    YMaps.jQuery(function () {
        var map = new YMaps.Map(YMaps.jQuery("#YMapsID-2854")[0]);
        map.setCenter(new YMaps.GeoPoint(40.517293,64.538711), 16, YMaps.MapType.MAP);
        map.addControl(new YMaps.Zoom());
        map.addControl(new YMaps.ToolBar());
        map.addControl(new YMaps.TypeControl());
        
        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 style="width: 450px; text-align: right; font-family: Arial;">
<!-- Этот блок кода нужно вставить в ту часть страницы, где вы хотите разместить карту (конец) -->
</div>

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

3 комментария
CMS,API 1.x
НЕ отображается карта, консоль ругается на css
sarmap
5 мая 2010, 15:45

 http://sarmap.ru/index.php?name=maps вот страница.

Консоль мозиллы ругается на css

Предупреждение: Неизвестное свойство «zoom».  Потерянное объявление.
Источник: http://api-maps.yandex.ru/1.1/_YMaps.css
Строка: 1

 ну и в томже духе порядка 20 ошибок.

Как избавится от зависимости css и что в ручную надо прописать?

2 комментария
API 1.x
У меня получилось!
novostrojka-by
5 мая 2010, 16:08

Вот теперь можно и в пример ставить!

<?xml  version="1.0" encoding="utf-8"?>
<ymaps xmlns="http://maps.yandex.ru/ymaps/1.x" xmlns:gml="http://www.opengis.net/gml">
    <Representation xmlns="http://maps.yandex.ru/representation/1.x">
 
//Задаем стиль
        <Style gml:id="mystyle">
            <balloonContentStyle>
                <template>#customTemplate</template>
            </balloonContentStyle>
        </Style>

//Делаем темплейт для балуна
//Важно! Когда нужно сделать ссылку:<img src="http://novostrojka.by/upload/pic/mini
//$[metaDataProperty.AnyMetaData.img] - необходимо ее прописывать в виде
//начала линка: http://novostrojka.by/upload/pic/mini, а потом метаданные $[metaDataProperty.AnyMetaData.img], иначе не воспимет.
//а потом в теле данных балуна прописываем остаток ссылки: <img>1_jw0xw9s8u9.jpg</img>
        <Template gml:id="customTemplate">
            <text>
                <![CDATA[<div style="font-weight:bold;padding-bottom:5px">$[name]</div><img src="http://novostrojka.by/upload/pic/mini/$[metaDataProperty.AnyMetaData.img]" alt="" style="float:left"><div style="float:left;padding-left:10px"><div>Адрес: $[metaDataProperty.AnyMetaData.address]</div><div>Продавец: $[metaDataProperty.AnyMetaData.sale]</div></div><div style="clear:both;padding-top:5px"><a href="http://novostrojka.by/page/$[metaDataProperty.AnyMetaData.link]">Подробнее</a></div>]]>
            </text>
        </Template>
    </Representation>
//Заполняем содержимое балуна
    <GeoObjectCollection>
        <gml:featureMember>
            <GeoObject>
                <style>#mystyle</style>
                <gml:name>АРЭСА на Олешева</gml:name>
                <gml:description>Описание</gml:description>
                <gml:metaDataProperty>
                        <AnyMetaData>
                           <address>ул. Олешева</address>
                           <img>1_jw0xw9s8u9.jpg</img>
                           <sale>АРЭСА-СЕРВИС</sale>
                           <link>273-zhiloj_kompleks_po_ul..html</link>
                        </AnyMetaData>
                    </gml:metaDataProperty>
                <gml:Point>
                    <gml:pos>27.609945  53.944076</gml:pos>
                </gml:Point>
            </GeoObject>
        </gml:featureMember>
    </GeoObjectCollection>
</ymaps>

Спасибо Саша за помощь! Отличная разметка получилась и поправка в шаблонах. На самом деле это было не трудно понять, но изначально в примерах в мануале не описано про ссылки, немного размыто. Надеюсь в этом примере будет все понятно.

Результат: http://maps.novostrojka.by/

2 комментария
примеры проектов,API 1.x
Что делать если геокодер не знает твоего города?
zaca
6 мая 2010, 00:14

Долго искал, но ничего не нашёл, может плохо искал незнаю, в общем на картах нет моего города, соответственно и геокодер ничего про него незнает, карту города в жопег варианте найти не проблема, однако незнаю как быть с геокодером? написать свой или можно как нибудь забить туда координаты улиц и домов своего города? или я что-то не так понимаю... в общем буду рад любому совету!!!

2 комментария
API 1.x
Скрытый див
Михаил Ткачук (РЦР)
6 мая 2010, 10:10

Вставляю карту через скрытый DIV согласно примеру. На карту устанавливаю метку. Название выводится не полностью, тоже, в случае если из метки открываю балун. Проблему частично решает "placemark.update();", но сложность в том, что меток много. Каким образом организовать обновление всех меток? Пройтись циклом по массиву не получилось.

Код:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title>Примеры. Инициализация карты скрытом диве.</title>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <script src="http://api-maps.yandex.ru/1.1/index.xml?key=ANpUFEkBAAAAf7jmJwMAHGZHrcKNDsbEqEVjEUtCmufxQMwAAAAAAAAAAAAvVrubVT4btztbduoIgTLAeFILaQ==" type="text/javascript"></script>
    <script type="text/javascript">
        // Создание обработчика для события window.onLoad
        YMaps.jQuery(function () {
            // Создание экземпляра карты и его привязка к созданному контейнеру
            var container = YMaps.jQuery("#YMapsID"),
                map = new YMaps.Map(container[0]);

            // Установка для карты ее центра и масштаба
            map.setCenter(new YMaps.GeoPoint(37.64, 55.76), 10);
            var placemark = new YMaps.Placemark(new YMaps.GeoPoint(37.64, 55.76));
            var placemark2 = new YMaps.Placemark(new YMaps.GeoPoint(37.64, 55.78));

            // При щелчке на ссылке меняется видимость контейнера карты
            YMaps.jQuery("#change-map-visibility").bind('click', function () {
                container.css('display', (container.css('display') == 'none') ? '' : 'none');
                map.redraw(); // Перерисовка карты
                placemarks[1].update();
                return false;
            });

            var placemarks = new Array;
            placemarks[1] = new YMaps.Placemark(new YMaps.GeoPoint(37.60, 55.72));
            placemarks[1].setIconContent('<b>BS-------------1</b>');
            map.addOverlay(placemarks[1]);
            placemarks[2] = new YMaps.Placemark(new YMaps.GeoPoint(37.55, 55.64));
            placemarks[2].setIconContent('<b>BS-------------2</b>');
            map.addOverlay(placemarks[2]);


        });
    </script>
</head>

<body>
    <a id="change-map-visibility" href="#">показать/скрыть карту</a>
    <div id="YMapsID" style="width:600px;height:400px;display:none"></div>
</body>

</html>

 

5 комментариев
API 1.x
Отображение оверлеев по месту просмотра.
Кирилл Яковлев
6 мая 2010, 12:56
Как на основной Яндекс.Карте реализовано отображение оверлеев по месту просмотра? Когда подгружаются только те, которые находятся в области просмотра.
2 комментария
API 1.x
Как ограничить просмотр карты?
Бреславский Артем
6 мая 2010, 14:17

Вопрос в следующем: как ограничить зону просмотра карты (например, одним городом, через задание границ этого города).

в openlayers есть отличная функция restrictedExtent. есть ли в Якартах подобное?

 

1 комментарий
область видимости
YMapsML и Iframe
sis26.ru
6 мая 2010, 15:54

Возникла проблема с выводом в балун Iframe

часть содержимого xml-файла

        <Template gml:id="customTemplate">
            <text>
                <![CDATA[<div><h4>$[description]</h4><br><IFRAME SRC='http://www.sis26.ru/pano/cube/cube.html' WIDTH=300px HEIGHT=250px NAME='' SCROLLING='no' frameborder=0 [NORESIZE]></IFRAME></div></div>]]>
            </text>
        </Template>


при выводе iframe в балун напрямую без xml все нормально

1 комментарий
шаблоны,API 1.x,YMapsML
Координаты метки
Ingvarion
6 мая 2010, 20:02

Здравствуйте

Помогите пожалуйста разобраться

Я хочу сделать у себя на сайте что-то вроде определения координат, как по ссылке:

http://api.yandex.ru/maps/tools/getlonglat/

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

Не могу чё-то найти соответствующей документации..

8 комментариев
API 1.x
"YMaps" is undefined
Janklyn
6 мая 2010, 21:38

Добрый вечер

 Подскажите пожалуйста в таком вопросе:

добавлено на страницу <script src="http://api-maps.yandex.ru/1.1/index.xml?key=ключ"type="text/javascript"></script> ,  в браузерах , в которых не установлено каких либо ограничений на доступы к сайтам, все работает великолепно. Но столкнулась с проблемой,что при ограниченных возможностях посещений сайтов выдается ошибка:

"YMaps" is undefined . Какие хосты нужно добавить в разрешенные, чтобы можно было подключить API?. Помогите пожалуйста в решении данного вопроса.

 Спасибо

 

4 комментария
API 1.x
Большое количество меток.
friend.rn
6 мая 2010, 23:10

Cпасибо большое всем, кто причастен, за введение дополнительных модулей, в частности — активные области. Радостная новость придала оптимизма.

С их помощью мы смогли реализовать проект с большим (и постоянно увеличивающимся) количеством меток (пока ~3000) без потери в производительности и с минимальным временем загрузки карты с метками. Почему? Как работает? Читайте про активные области.

Отдельное спасибо модератору Саше за содействие, поддержку и указание "носом" (так сказать) в эти модули, которые, к счастью, во время стали доступны.

Если кому интересно — проект

3 комментария
примеры проектов,API 1.x
динамическая подгрузка xml без перезагрузки карты
sis26.ru
7 мая 2010, 13:24

Спасибо за ответ на предыдущий вопрос.

Столкнулись с еще одним.


стоит задача динамической подгрузки xml.
нужно при нажатии на ссылку и событии onclick стереть все оверлеи и создать новый YMapsML где параметр будет адресом на другой xml

вопрос: как получить доступ к созданному экземпляру map из простой js функции.

2 комментария
API 1.x,YMapsML