Доброго времени суток, ув. эксперты!
Прошу совета и/или помощи. В БД PostgreSQL PostGIS имеются географические координаты улицы некоторых крупных городов. Необходимо наложить эти улицы поверх Google карты. МапСервер одну большую картинку умеет отображать с улицами и подписями. На сколько я понял, ka-map можно использовать для разбивки этой большой карты на отдельные тайлы. Проблема возникает при попытке наложить на гугло-карту. Для этого использую TileLayerOverlay и свой класс унаследованный от TileLayerBase. АПИ гугла автоматически вызывает метод loadTile для загрузки очередного тайла. Параметрами туда передаются координаты тайла (гугловские координаты, по сути индексы строки и столбца) и зум. Не могу сообразить, что мне нужно сделать, чтоб привести эти координаты в вид понятный ka-map и MapServer'у, чтоб тот сгенерировал и вернул нужный тайл.
На просторах интернета находил модифицированный файл tile.php (из ка-мап), который вроде как предназначен для того, чтоб "подружить" ka-map с гугло-картами, однако не захотел он работать как нужно. При переводе индексов тайла гугла в екстент для мап-сервера, все время получается miny и maxy одинаковыми...
Заранее спасибо.
ka-map + Google Maps(flex) + Map Server
-
- Новоприбывший
- Сообщения: 4
- Зарегистрирован: 26 июн 2009, 17:44
- Репутация: 0
-
- Новоприбывший
- Сообщения: 4
- Зарегистрирован: 26 июн 2009, 17:44
- Репутация: 0
Re: ka-map + Google Maps(flex) + Map Server
Некоторые изменения. Удалось добиться генерации тайлов и наложения на гугл-мапс. Однако вышло так, что улицы оказались сильно смещены (смещение: 2-4 км в северо-восточном направлении. исходные координаты более-менее точные - пробовал рисовать линии-улицы на карте средствами флеша - почти идеально совпадали). В мап-файле для MapServer общую проекцию определил как:
А для слоев улиц, которые берутся из базы и в исходном варианте имеют координаты точек в виде широта/долгота, следующую проекцию:
Что может быть причиной смещения? Может я неправильно выбираю исходную проекцию данных? или целевую проекцию гугла...?
Код: Выделить всё
PROJECTION
"+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs"
END
Код: Выделить всё
PROJECTION
"+proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs"
END
-
- Участник
- Сообщения: 83
- Зарегистрирован: 16 июн 2009, 10:38
- Репутация: 0
Re: ka-map + Google Maps(flex) + Map Server
сложно судить в чем именно проблема, но я сам только что поборол наложение растра на google maps.
использовал эту статью: gis-lab.info/qa/ms-gm.html
надеюсь поможет
использовал эту статью: gis-lab.info/qa/ms-gm.html
надеюсь поможет
-
- Новоприбывший
- Сообщения: 4
- Зарегистрирован: 26 июн 2009, 17:44
- Репутация: 0
Re: ka-map + Google Maps(flex) + Map Server
проблема решена.
Загвоздка была в алгоритме перевода градусов в метры по проекции Меркатора (в файле генерации тайлов tile.php): использовался средний радиус Земли, а нужен был, судя по всему, экваториальный (во всяком случае с ним у меня улицы встали на свои места).
Загвоздка была в алгоритме перевода градусов в метры по проекции Меркатора (в файле генерации тайлов tile.php): использовался средний радиус Земли, а нужен был, судя по всему, экваториальный (во всяком случае с ним у меня улицы встали на свои места).
Кто сейчас на конференции
Сейчас этот форум просматривают: Bing [Bot] и 1 гость