Клуб API Карт

январь 2011
Исследование пробок Москвы
inviteme111
1 января 2011, 18:07

Добрый день!

 

Я планирую заняться исследование транспортной системы Москвы, с целью создать её модель.

 

Скажите, возможно ли принципиально через какой-либо API:

- Получить список всех перекрёстков Москвы

- Для каждого перекрестка получить:

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

-- Впадающие в него дороги и их характеристики

- Точки притяжения в привязке к дорогам по типам (жилая недвижимость/коммерческая недвижимость, на сколько живущих/работающих человек рассчитана).

 

Если это возможно в программном режиме, скажите в каком направлении копать.

 

Заранее спасибо.

3 комментария
API 1.x
Яндекс.Карт для
dmitry.verbitskiy
2 января 2011, 19:58

Подскажите пожалуйста как быстрее и правильнее вставить Яндекс.Карт во всплывающее окно плагина для wordpress Fancybox For Wordpress?

Увидел на этом сайте и понравилось как это выглядит.

Всех с наступившим и спасибо за помощь 

Нет комментариев
WordPress,API 1.x
Ближайший населённый пункт
find-realty
2 января 2011, 21:03
Возможно ли определить такое? не подскажите где почитать?
3 комментария
API 1.x
Где взять список всех улиц в городе?
vvkutsanov
3 января 2011, 16:12

Может кто сталкивался с такой ппроблемой?

Иногда пользователь вводит неправильно улицу, или с ошибкой

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

есть ли такое хранилище, и если есть ссылку плз на него

Заранее благодарен!

4 комментария
API 1.x
Асинхронный запуск или туплю с областью видимости функций
cycler
4 января 2011, 02:54

Друзья-коллеги, всем салют! )))

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

Но не всё так гладко, как в ТЗ )) Я уже полазил по нашему клубу и выяснил, что скрипт с яндекса нужно грузить немного другой для такой задачи, но вот дальше...

Из рабочего jquery подгружаю скрипт работы с картой:

 

$(function() {
/* ------- -----some code ---- - - ----- -- -- - --- */
var mapScriptNoLoad = true;
    $('.show-map').bind('click', function(e) {
        e.preventDefault();
        if (mapScriptNoLoad)
            $.getScript('/theme/mine/j.my-map.js',
                function () {mapScriptNoLoad = false;})
});
/* ------- -----some code ---- - - ----- -- -- - --- */
});

 

В загруженном скрипте j.my-map.js подгружаю скрипт яндекса и пытаюсь запустить карту:

 

$(function() {
    $('<div id="YMapsID"></div>').appendTo($('body'));
   
    $.getScript('http://api-maps.yandex.ru/1.1/index.xml?key=key&loadByRequire=1',
        function () {
            setTimeout(function(){YMaps.load(initMap);}, 1);
    });
});
   
YMaps.jQuery(function () {   
    function initMap() {
         map.setCenter и подобное....
    }
});

 

Ошибка - initMap is not defined

Я понимаю, что у меня пробелы в теории, будьте так любезны, подскажите, как правильно оформить код?

Спасибо!
13 комментариев
область видимости
Клик на регионе
Vladislav Kravchenko
4 января 2011, 11:37

Коллеги, новогодний привет!

Никак не пойму - как мне обрабатывать клики на регионах (модуль регионов подключен, при елозаньи мышкой по карте они отображаются). Клики на регионах не ловятся через YMaps.Events.observe(map,map.Events.Click, зато замечательно ловятся там, где нет никаких регионов (например в Турции).

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

Да, при клике на регионе вспылвает балун с названием региона.... МОжет в этом дело?

2 комментария
регионы,API 1.x
Кэширование изображений от Static API
ato2by
4 января 2011, 23:32

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

Поэтому возник вопрос:  "Можно ли пользователям из локальной сети показывать заранее закэшированные изображения карты, полученные через Static API? Не будет ли это нарушать пользовательское соглашение?"

6 комментариев
Static API,пользовательское соглашение,производительность
Вывод меток из базы данных
Dmitry Fedotov
5 января 2011, 01:12

Уважаемые разработчики, прошу помощи. 

Скажем, есть база данных вида: Город, Человек, Телефон.

Мне на карте надо вывести эти данные в виде меток.

Каким наиболее эффективным способом это можно сделать?

Можно ли из базы данных выгружать данные в xml файл формата яндекс карт, чтобы из этого файла создавались метки?  или это можно сделать еще каким то другим способом?

Сразу скажу что в программировании со временем стал слаб, сижу, разбираюсь, вспоминаю.

Спасибо за помощь!

7 комментариев
API 1.x
Как создать такую карту
heartmalady
5 января 2011, 20:07

Заинтересовала возможность создания подобной карты  http://4bloka.com/karta.html для небольшого городка.

Как токое реализовать, какие нужны для этого инструменты, что использовать?

Буду рад услышать любые разьяснения и предложения.

1 комментарий
API 1.x
Проблема при создание меню для отображения коллекций объектов
mikeles87
5 января 2011, 23:42

Делал строго как говорили: http://api.yandex.ru/maps/ymapsml/examples/menufromymapsml.html

Но почему то заголовки групп передаются как "undefined". Кто-нибудь сталкивался с такой проблемой? может помочь?

Собственно xml генерится через php:


<ymaps:GeoObjectCollection> 

        <gml:featureMembers> ';   

   

  $sql_tp = "Select typePlace.ID, typePlace.NAME From typePlace";

 $q_tp =  mysql_query($sql_tp);

   while ($row = mysql_fetch_array ($q_tp))

   {

  echo "<ymaps:GeoObjectCollection>

<gml:name>".$row[1]."</gml:name> 

<gml:featureMembers>";

$sql_fp = "Select firmPlace.NAME,

  pointsPlace.POINTS,

  firmPlace.DESCRIPTION,

  firmPlace.TIME,

  firmPlace.NAMECONTACT,

  firmPlace.PHONECONTACT,

  typePlace.PICSURL

From typePlace Inner Join

  firmPlace On firmPlace.ID_TYPE_PLACE = typePlace.ID Inner Join

  pointsPlace On firmPlace.ID_POINTS = pointsPlace.ID

Where typePlace.ID = ".$row[0]."

Group By firmPlace.NAME,

  pointsPlace.POINTS,

  firmPlace.DESCRIPTION,

  firmPlace.TIME,

  firmPlace.NAMECONTACT,

  firmPlace.PHONECONTACT";

  $q_fp =  mysql_query($sql_fp);

   while ($row_fp = mysql_fetch_array ($q_fp))

   {

   

 echo "<ymaps:GeoObject> 

                        <gml:name>".$row_fp[0]."</gml:name> 

<gml:description>

<table width='100%' border='0'>

    <tr>

      <td>".$row_fp[2]."</td>

    </tr>

    <tr>

      <td>".$row_fp[3]."</td>

    </tr>

    <tr>

      <td>".$row_fp[4]."</td>

    </tr>

    <tr>

      <td>".$row_fp[5]."</td>

    </tr>

    

  </table>

</gml:description>

<gml:metaDataProperty>

     <ymaps:AnyMetaData>

       <address>".$row_fp[2]."</address>

   <time>".$row_fp[3]."</time>

   <name>".$row_fp[4]."</name>

       <phone>".$row_fp[5]."</phone>

       

      </ymaps:AnyMetaData>

  </gml:metaDataProperty>";

  echo "  <ymaps:style>#customStyle".$row_fp[6]."</ymaps:style> ";

                       echo" <gml:Point> 

                            <gml:pos>".$row_fp[1]."</gml:pos> 

                        </gml:Point> 

                    </ymaps:GeoObject>";

  

   }

echo "</gml:featureMembers>";

               

           echo " </ymaps:GeoObjectCollection>"; 

   

   }

12 комментариев
API 1.x,балун,YMapsML
Отображение карты и точки через поиск по адресу
Виталий
6 января 2011, 16:46

Есть строка для поиска: Митинская, д. 53, Москва, Россия, ищу данные получаю такой результат http://maps.yandex.ru/-/CZQLRnb

Внедрил себе карту на страницу для отображения точки по координатам:

<script src="http://api-maps.yandex.ru/1.1/?key=APIключ&modules=pmap&wizard=constructor" type="text/javascript"></script>
<script type="text/javascript">
YMaps.jQuery(window).load(function () {
var map = new YMaps.Map(YMaps.jQuery("#YMapsID")[0]);
map.setCenter(new YMaps.GeoPoint(37.352306,55.853916), 15, 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#pmrdmPlacemark", {
iconStyle : {
href : "http://api-maps.yandex.ru/i/0.3/placemarks/pmrdm.png",
size : new YMaps.Point(28,29),
offset: new YMaps.Point(-8,-27)
}
});

map.addOverlay(createObject("Placemark", new YMaps.GeoPoint(37.351662,55.853385), "constructor#pmrdmPlacemark", "<p><b>Аптека №<? echo $id; ?></b><br/><b>Адрес:</b> <? echo "".$street."".$house."".$city."";?></p>"));

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="YMapsID" style="width:537px;height:400px"></div>

Я хочу из скрипта php в скрипт явы передавать адрес и сразу показывать на карте ту точку, как аналогично при поиске по адресу в Яндекс картах. Подскажите как модифицировать код?

8 комментариев
API 1.x
Не отображаются Яндекс.Карты (maps.yandex.ru)
Удалённый пользователь
7 января 2011, 14:14
что с яндекс картами ? они ничего не показывают :(
8 комментариев
API 1.x
Балун закрывается сразу же после открытия.
cccr85omsk
7 января 2011, 18:41

С новым годом, и рождеством всех.

В общем создаю группы, в них добавляю метки. При клике на метке так ловлю событие клика:

YMaps.Events.observe(placemark, placemark.Events.Click, myObj.clickPoint);

Вот функция clickPoint которая входит в myObj

clickPoint : function (point) {
        point.name = "Имя метки";
        point.description = "Описание метки";

        point.openBalloon();
    },

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

2 комментария
API 1.x
Создать инструменты для рисования многоугольников
maksim-k3
8 января 2011, 00:36

Можно ли сделать так, чтобы можно было рисововать только многоугольники какбы состоящие из квадратов*.

Тоесть, например,  чтобы можно было рисовать многоугольник, только закрашивая тайлы карты, при этом чтобы координаты хотя бы одного угла каждого закрашенного тайла были известны?

Возможно-ли реализовать такой слой? Если кто может помочь с задачей за вознаграждение :) свяжитесь со мной

* пример карты

красный цвет - объект многоугольник

голубой цвет - требуемый многоугольник из квадратов

7 комментариев
API 1.x
Маршруты из БД
eLevn1989
9 января 2011, 01:34

Здраствуйте! Такая проблема, на диплом делаю что-то типа GPS-навигации с использованием Яндекс-карт. Так вот реализовал добавление маршрута, путем рисования ломаной на Яндекс-карте, координаты заносятся в БД.

Но как реализовать так, чтобы при просмотре маршрута высвечивалась карта и рядом список моих маршрутов, чтобы я нажал на одном - и он по данным из БД нарисовался на карте.

17 комментариев
API 1.x
Инструмент для добавления меток с заданными координатами
cycler
9 января 2011, 15:40

Есть пример http://api.yandex.ru/maps/jsapi/examples/mapcontroltoolbarbutton.html , где добавляется метка в центр карты. Как добавить к кнопке в примере поле input для ввода координат и добавлять метку с указанными координатами?

Также нашёл пример добавления пользовательского инструмента http://api.yandex.ru/maps/jsapi/examples/mapcontrolscustomizing.html (список офисов), но он не сильно прояснил ситуацию.

Ещё есть пример http://api.yandex.ru/maps/jsapi/examples/geocoding.html , но в нём инпут находится вне карты.

Конечно, можно отдельно создать форму и с помощью css расположить её в нужном месте карты, но это решение не изящно. Или оно одно единственное?

Кстати, попробовал добавлять метки через геокодер - они добавляются, но с некоторым смещением, от 100 метров до 7 километров.

3 комментария
метка,элементы управления,координаты
How to use MySQL Spatial Extensions
dimik
9 января 2011, 16:41
Небольшое руководство по использованию расширения для MySQL для работы с геоданными

Читать далее

2 комментария
MySQL
jQuery + геокодер Яндекс.карт
tipugin
9 января 2011, 23:54

Подскажите, как с помощью jQuery делать запрос к геокодеру?

пытаюсь: 

$.getJSON('http://geocode-maps.yandex.ru/1.x/?geocode='+location+'&key='+self.settings.ymapsApiKey, function(data, textStatus) {

  сonsole.log(data);

});

Заранее спс

6 комментариев
API 1.x,геокодирование
Разбивка маршрута на "По городу" и "За городом"
drinkmaker2008
10 января 2011, 06:18

Добрый день.

Есть маршрут начинается он в городе а заканчивается за городом (или в соседнем городе/селе).

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

Подскажите как наиболее изящно решить этот вопрос?

Из того что придумал сам:

1. геокодируем каждую точку маршрута

2. перебираем результаты и смотрим в AddressDetails LocalityName

3. Если LocalityName отличается от нашего города, значит эта точка уже за городом и здесь нужно разделить наш маршрут.

Из недостатков:

1. много запросов к геокодеру

2. Не очень точно,

Второй вариант над которым думаю:

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

 

Может у кого то есть другие идеи? Или готовое решение

2 комментария
маршрутизация,геокодирование
Не отображаются 2, 3 и т.д. карты на странице
voyd1
10 января 2011, 16:41
При попытке отобразить более 1 карты на странице возникают проблемы - вместо 2, 3 и т.д. карты показываются серые или белые прямоугольники. Вот код вызова карт:
window.onload = function () {
 
3 var map = new YMaps.Map(document.getElementById("YMapsID"));
4 map.enableScrollZoom();
5 var geocoder = new YMaps.Geocoder(",Иваново,Ленина,1,1");
6 YMaps.Events.observe(geocoder, geocoder.Events.Load, function (geocoder) {
7 map.addOverlay(geocoder.get(0));
8 map.setBounds(geocoder.get(0).getBounds());
9 });
  
11 var map0 = new YMaps.Map(document.getElementById("YMapsID_0"));
12 map0.enableScrollZoom();
13 map0.addControl(miniMap);
14 map0.addControl(new YMaps.Zoom());
15 map0.addControl(new YMaps.ToolBar());
16  map0.addControl(new YMaps.TypeControl());  
18 var geocoder0 = new YMaps.Geocoder(",Иваново,Ленина,1,1");
19 YMaps.Events.observe(geocoder0, geocoder0.Events.Load, function (geocoder0) {
20 map0.addOverlay(geocoder0.get(0));
21 map0.setBounds(geocoder0.get(0).getBounds());
22 });

24 var map1 = new YMaps.Map(document.getElementById("YMapsID_1"));
25 map1.enableScrollZoom();
26 map1.addControl(miniMap);
27 map1.addControl(new YMaps.Zoom());
28 map1.addControl(new YMaps.ToolBar());
29  map1.addControl(new YMaps.TypeControl());
31 var geocoder1 = new YMaps.Geocoder(",Иваново,Ленина,1,1");
32 YMaps.Events.observe(geocoder1, geocoder1.Events.Load, function (geocoder1) {
33 map1.addOverlay(geocoder1.get(0));
34 map1.setBounds(geocoder1.get(0).getBounds());
35 });
 
}
 
2 комментария
API 1.x,несколько карт