это, блин, не константы
это то, что обозначают эти числа
minlon = minimum longitute = долгота левого угла
аналогично lat = широта
мне это казалось очевидным
Пробую, но что-то не совсем получается.
Вот если имеем такие координаты: 50.43122, 30.48855
Вы как посчитаете если, не использовать алгоритм от wildMan?
Перевести координаты в меркаторовские (Google и OSM используют меркаторовскую проекцию)
Зная scale и меркаторовские координаты центра области находим координаты границы области. Разрешение (число меркаторовских координат на пиксел) находится по scale. А размер области в пикселях пропорционален размеру области в меркаторовских координатах
Пересчитываем меркаторовские координаты области обратно в обычные.
функции пересчета в меркатор и обратно на языке Javascript:
lonlatToMercator: function(lon, lat) {
var x = lon * 20037508.34 / 180;
var y = Math.log(Math.tan((90 + lat) * Math.PI / 360)) / (Math.PI / 180);
y = y * 20037508.34 / 180;
return new OpenLayers.LonLat(x, y);
}
mercatorToLonLat: function(x, y) {
var lon = (x / 20037508.34) * 180;
var lat = (y / 20037508.34) * 180;
lat = 180/Math.PI * (2 * Math.atan(Math.exp(lat * Math.PI / 180)) - Math.PI / 2);
return new OpenLayers.LonLat(lon, lat);
}
Разрешение рассычитывается по масштабу (тот самый параметр scale в ссылке, которую я приводил) так:
getResolutionFromScale = function (scale) {
Большое спасибо! Я использую эту информацию в своем следующем проекте.
Просто этот проект уже практически был готов, когда выяснилось, что страны CНГ плохо у Google реализованы. Поэтому я хотела сдыхаться от этого проекта не большой его переделкой, а погружаться в javascript и OpenLayers займет у меня много времени на изучение.
Я пока обошлась iframe-ом. Координаты формирую так как советовали:
double one = StrToFloat(IWEditWAP1->Text) - 0.02;//первый параметр для bbox
double two = StrToFloat(IWEditWAP2->Text) - 0.02;//второй параметр
double thr = StrToFloat(IWEditWAP1->Text) + 0.02;//третий параметр
double fro = StrToFloat(IWEditWAP2->Text) + 0.02;//четвертый
IWEditWAP1->Text и IWEditWAP2->Text координаты из базы данных типа 50.886, 30.4466
Затем все это засовываю в iframe:
Лена, а в какой программе страница просматривается? Спрашиваю, потому что в Internet Explorer Mobile нельзя указать позицию HTML-элемента, поэтому там нельзя сложить карту из отдельных ее элементов. В Internet Explorer Mobile есть и другие ограничения, из-за чего обычные OpenStreetMap и Google Maps не будут работать.
Вы оказались правы. При попытке посмотреть на мобильном телефоне страницу htm с тегом iframe, получила чистую страницу.
Придется изучать титлы. Для облегчения задачи согласна уже на стандартный размер 256х256
А как получить API Key?
Создала акаунт.
На странице Manage Your Account просят ввести:
To get started, please add the URL of the site which you would like to add maps to:
У google в этом случае на странице появлялся сгенерированный ключ…
P.S.
Заметила в самом верху странице Domain URL is invalid
Этот адрес мне выделил сис.админ и на нем крутится мое сетевое приложение и регистрация у google не имела проблем и карты google все работают и грузятся. Что не так?
P.S.
Вообщем заказала у сис.админа буквенню Domain URL, обещал сделать…
Для работы с титлами мне нужен этот код
n = 2 ^ zoom
lon_deg = xtile / n * 360.0 - 180.0
lat_rad = arctan(sinh( Pi * (1 - 2 * ytile / n)))
lat_deg = lat_rad * 180.0 / Pi
Отсюда: http://developers.cloudmade.com/projects/tiles/examples/2
Ух, ты! СПАСИБО! Сейчас буду тестить.
С маркером проблем нет.
Я написала код, сначала картинка по ссылке принимаеттся и сохраняется на диск. Затем на нее в центр помещается маркер, который я сама нарисовала и потом уже это отбражается пользователю.
Тестировала в программе для мобильников WinWAP for Windows 4.1 вроде работает.
Получается при использовании firefishy.com и API ключ не нужен…
А насколь надежен этот сервис firefishy.com? Не закроют его завтра?
Ну вот проблема.
Ссылка нормально работала и я ее использовала, а вот уже второй день сервис не доступен.
Может кто знает другую ссылку, более надежную, на этот сервис?