Cтатические карты

Большое спасибо за ссылки!
Буду копаться.:slight_smile:

Лена, посмотрим еще раз внимательно на ссылку, которую я выше привел
ссылка tile.openstreetmap.org/cgi-bin/export?bbox=37.6082,55.7433,37.6429,55.7598&scale=27500&format=png
После bbox указываешь границы нужной области, после scale - нужный масштаб
Картинка приходит как “вложение”, т.е. открывается окно для сохранения.
Установи, например свой веб-сервер, который скачивает картинку с openstreetmap.org, а пользователю передает в обычном виде, не делая его вложением.

Прямой возможности вставить маркер нет. Но можно самому реализовать такую возможность самостоятельно

Все равно, не доходит.:slight_smile:
Вот есть авмтомбиль и у меня в базе прибор прислал его широту и долготу (для маркера).
Как используя эту информацию расчитать границы области?
Я например хочу, чтобы карта всегда была размером 400 на 400 пикселей, а в центре ее автомобиль с его широтой и долготой из базы данных.
Получается так?:

  1. Придумать чтобы область всегда была 400 на 400.
  2. Придумать на сервере логику для скачивания картинки с openstreetmap.org с нужной областью 400 на 400.
  3. Отправить ее пользователю в обычном виде.
  4. Придумать как поставить маркер.
    Сложновато.:slight_smile:

Лена - задачи сформулировала правильно :slight_smile:
Формула для пересчета из координат в пиксели и обратно есть в коде javascript-библиотеке OpenLayes.

Альтернативу wildMan уже упомянул - Cloudmade. Все-таки это коммерческая организация. А OpenStreetMap - некоммерческая

так врядли получится. помоему тайлы всегда размером 256x256. но на разных zoom они охватывают разную площадь
надо:

  1. получить тайл на который попадает точка-маркер ( формула http://developers.cloudmade.com/projects/tiles/examples/2 )
  2. скачать тайл
  3. скачать например 8 соседних тайлов
    соответственно получим кусочек 3x3 тайла (768x768 px) приблизительно в центре которого будет точка полученная от авто
    из него уже можно вырезать 400x400 если надо

vvoovv, Cloudmade создали создатели OSM. большая часть сервисов предоставляемая ими - свободна
если заметили то mapnik теперь рендерит не раз в неделю а гораздо оперативней (иногда за полчаса-час) - это тоже заслуга Cloudmade.

Ссылка которую я привел рисует не тайл 256x256, а произвольную область. Например размер области по ссылке http://tile.openstreetmap.org/cgi-bin/export?bbox=37.6082,55.7433,37.6429,55.7598&scale=27500&format=png 501x423 пикселя

Говоря, что Cloudmade - коммерческая компания, я имел ввиду, что там разработчикам платят деньги за работу. А в Openstreetmap любой участник имеет полное право в любой момент прекратить работу.

Всем большое спасибо:)
1.Прежде чем пробывать с титлами (я уже согласна и на размер 256 на 256), меня бы уже очень устроила просто такая ссылка на моей странице:
http://www.openstreetmap.org/export/embed.html?bbox=30.4213,50.3783,30.6121,50.4883&layer=mapnik&marker=50.43122,30.48855
тут и маркер готовый. Цифры я бы программно добавляла.
Только размер карты конечно не подходит.
Подскажите, пожалуйста, формулу как правильно посчитать bbox имея координаты маркера, я что-то не нахожу.:frowning:
Хочу чтобы карта была по размеру шириной и высотой примерно как инструмент Zoom по этой ссылке…

2.Второй путь это конечно так: http://developers.cloudmade.com/projects/tiles/examples/2
но там придется программно маркер добовлять и мне придется тот код переписывать на С++.

Мне первый вариант хочется реализовать. Я так поняла, что в этом варианте загвоздка только в расчете bbox.

bbox = minlon,minlat,maxlon,maxlat

josm считает так:

double size = 180.0 / Math.pow(2, ZOOM); 
b = new Bounds( new LatLon(LAT - size/2, LON - size), new LatLon(LAT + size/2, LON + size) );

как я понимаю пишите на javame ?
если так то есть http://developers.cloudmade.com/projects/show/j2me-lib

Нет пишу на этом: http://www.atozed.com/IntraWeb/index.en.aspx
для Google карты все получилось и довольно просто, а вот OpenStreetMap ну никак не могу победить.:slight_smile:

Как применить эти константы?
Так не выходит:
http://www.openstreetmap.org/export/embed.html?bbox=minlon,minlat,maxlon,maxlat&layer=mapnik&marker=50.43122,30.48855

это, блин, не константы :laughing:
это то, что обозначают эти числа
minlon = minimum longitute = долгота левого угла
аналогично lat = широта
мне это казалось очевидным

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

Код от wildMan пока я не могу применить.

Я хочу получить карту по размеру примерно такую как тут:

а в чём проблема их посчитать в зависимости от положения маркера??

Пробую, но что-то не совсем получается.:frowning:
Вот если имеем такие координаты: 50.43122, 30.48855
Вы как посчитаете если, не использовать алгоритм от wildMan?

bbox = 30.48855-dlon,50.43122-dlat,30.48855+dlon,50.43122+dlat
dlon и dlat - хоть константами прописать

Какие вы задаете значения для dlon и dlat? Я пробывала разные цифры - меняется только масштаб карты а не ее размер.:frowning:

ну размер-то уже не от адреса зависит, а от области отображения

можно вот так, например:

iframe это конечно выход из положения. Я его применяю в классическом web интрефейсе, но для wap интерфейса в билиотеке нет возможности добавить iframe :frowning:

Вроде нашла возможность через iframe…

Все таки какие оптимальные значения вы бы поставили для этих констант?