Смешения тайликов относительно векторной информации
-
- Интересующийся
- Сообщения: 17
- Зарегистрирован: 25 июн 2012, 13:24
- Репутация: 0
Смешения тайликов относительно векторной информации
Есть векторный слой рендрится mapserver'ом из postgis
Есть тайлики сделаные MapTiler
При отрисовке openlayer получается не стыковка векторного слоя и растровых тайлов, смешение. Подскажите куда смотреть?
Есть тайлики сделаные MapTiler
При отрисовке openlayer получается не стыковка векторного слоя и растровых тайлов, смешение. Подскажите куда смотреть?
- Вложения
-
- Картинка
- Untitled.png (40.27 КБ) 11150 просмотров
- Denis Rykov
- Гуру
- Сообщения: 3376
- Зарегистрирован: 11 апр 2008, 21:09
- Репутация: 529
- Ваше звание: Author
- Контактная информация:
Re: Смешения тайликов относительно векторной информации
А исходный растр (не тайлированный) совпадает с вектором?
Spatial is now, more than ever, just another column- The Geometry Column.
-
- Интересующийся
- Сообщения: 17
- Зарегистрирован: 25 июн 2012, 13:24
- Репутация: 0
Re: Смешения тайликов относительно векторной информации
В аркгисе смотрю все совпадает
[ Сообщение с мобильного устройства ]
[ Сообщение с мобильного устройства ]
- Denis Rykov
- Гуру
- Сообщения: 3376
- Зарегистрирован: 11 апр 2008, 21:09
- Репутация: 529
- Ваше звание: Author
- Контактная информация:
Re: Смешения тайликов относительно векторной информации
Растр, который вы разбиваете на тайл - он в каком формате, где прописана привязка? Если можно - выложите куда-нибудь данные, а то так долго гадать можно.
Spatial is now, more than ever, just another column- The Geometry Column.
-
- Интересующийся
- Сообщения: 17
- Зарегистрирован: 25 июн 2012, 13:24
- Репутация: 0
Re: Смешения тайликов относительно векторной информации
Растр GeoTIFF, MapTiler определяет привязку правильно. файлики довольно таки огромные. постараюсь ужать и скинуть. Я так понимаю что проблема в maxExtent: OpenLayers.Bounds(). он был прописан для векторного слоя, а когда я подключаю растровый слой ему надо указать свою позицию что ли.
Код: Выделить всё
function overlay_getTileURL(bounds) {
var res = this.map.getResolution();
var x = Math.round((bounds.left - this.maxExtent.left) / (res * this.tileSize.w));
var y = Math.round((bounds.bottom - this.maxExtent.bottom) / (res * this.tileSize.h));
var z = this.map.getZoom();
if (x >= 0 && y >= 0) {
return this.url + z + "/" + x + "/" + y + "." + this.type;
} else {
return "http://www.maptiler.org/img/none.png";
}
}
// avoid pink tiles
OpenLayers.IMAGE_RELOAD_ATTEMPTS = 3;
OpenLayers.Util.onImageLoadErrorColor = "transparent";
var map = new OpenLayers.Map({
div: "map",
maxExtent: new OpenLayers.Bounds(3268906.637700, 5371766.708000, 3319656.299400, 5414472.816700),
minResolution: "auto",
projection:"EPSG:1",
layers: [
new OpenLayers.Layer.TMS("TMS Layer",
"/test/",
{
url: '', serviceVersion: '.', layername: 'boundary', alpha: true,
type: 'png', getURL: overlay_getTileURL}
),
new OpenLayers.Layer.WMS("OSM (with buffer)",
"http://localhost/cgi-bin/mapserv.fcgi?",
{
layers : "boundary",
map : "/var/www/test.map",
format: 'png',
transparent: "true"
},
{
isBaseLayer: false
}
)
],
controls: [
new OpenLayers.Control.Navigation({
dragPanOptions: {
enableKinetic: true
}
}),
new OpenLayers.Control.PanZoomBar(),
new OpenLayers.Control.Attribution(),
new OpenLayers.Control.MousePosition(),
new OpenLayers.Control.ScaleBar()
]
});
map.addControl(new OpenLayers.Control.LayerSwitcher());
map.zoomToMaxExtent();
-
- Интересующийся
- Сообщения: 17
- Зарегистрирован: 25 июн 2012, 13:24
- Репутация: 0
Re: Смешения тайликов относительно векторной информации
Вот как выглядит растрик в ArcGIS вот как выглядит этот же растрик потайленый в openlayers
- Вложения
-
- Растр в openlayers
- openlayers.png (136.61 КБ) 11093 просмотра
-
- Растр в ArcGIS
- arcgis.png (27.75 КБ) 11093 просмотра
- Denis Rykov
- Гуру
- Сообщения: 3376
- Зарегистрирован: 11 апр 2008, 21:09
- Репутация: 529
- Ваше звание: Author
- Контактная информация:
Re: Смешения тайликов относительно векторной информации
Зачем вы пишете собственную функцию overlay_getTileURL?
Spatial is now, more than ever, just another column- The Geometry Column.
-
- Интересующийся
- Сообщения: 17
- Зарегистрирован: 25 июн 2012, 13:24
- Репутация: 0
Re: Смешения тайликов относительно векторной информации
Не знаю )) а как? я ее выцепил из того что сгенерил мне MapTiler. Я уже вижу что в ней проблема.
У меня тайлики просто на диске хранятся. я функцией формирую урл по которому беру с сервера тайлик.
У меня тайлики просто на диске хранятся. я функцией формирую урл по которому беру с сервера тайлик.
- Denis Rykov
- Гуру
- Сообщения: 3376
- Зарегистрирован: 11 апр 2008, 21:09
- Репутация: 529
- Ваше звание: Author
- Контактная информация:
Re: Смешения тайликов относительно векторной информации
В качестве предположения, попробуйте заменить OpenLayers.Layer.TMS на OpenLayers.Layer.XYZ.
Spatial is now, more than ever, just another column- The Geometry Column.
-
- Интересующийся
- Сообщения: 17
- Зарегистрирован: 25 июн 2012, 13:24
- Репутация: 0
Re: Смешения тайликов относительно векторной информации
Поменял, никаких изменений
- Denis Rykov
- Гуру
- Сообщения: 3376
- Зарегистрирован: 11 апр 2008, 21:09
- Репутация: 529
- Ваше звание: Author
- Контактная информация:
Re: Смешения тайликов относительно векторной информации
Ну тогда остаётся вам скинуть мне данные, чтобы я сам посмотрел, похоже что-то не так с функцией getURL.
Spatial is now, more than ever, just another column- The Geometry Column.
- Denis Rykov
- Гуру
- Сообщения: 3376
- Зарегистрирован: 11 апр 2008, 21:09
- Репутация: 529
- Ваше звание: Author
- Контактная информация:
Re: Смешения тайликов относительно векторной информации
Получил ваши данные и сделал следующее:
1) Перепроецировал вектор и растр в EPSG:900913, чтобы можно было использовать совместно с каким-нибудь публичным сервисом, например, OSM;
2) На базе векторного слоя поднял WMS сервис (MapServer);
3) Растр опубликовал по протоколу TMS, используя TileCache, скормив ему на входе tif-файл. То есть тайлы создаются на лету из растра и при этом кэшируются.
Результат можно посмотреть здесь. Как видно, такого смещения, как в вашем примере, не наблюдается.
P.S. Попытки протайлировать растр с использованием gdal2tiles (бэкенд MapTiler-а) и подключить тайлы, используя OpenLayers.Layer.XYZ пока к результату не привели, будем продолжать разбираться.
1) Перепроецировал вектор и растр в EPSG:900913, чтобы можно было использовать совместно с каким-нибудь публичным сервисом, например, OSM;
2) На базе векторного слоя поднял WMS сервис (MapServer);
3) Растр опубликовал по протоколу TMS, используя TileCache, скормив ему на входе tif-файл. То есть тайлы создаются на лету из растра и при этом кэшируются.
Результат можно посмотреть здесь. Как видно, такого смещения, как в вашем примере, не наблюдается.
P.S. Попытки протайлировать растр с использованием gdal2tiles (бэкенд MapTiler-а) и подключить тайлы, используя OpenLayers.Layer.XYZ пока к результату не привели, будем продолжать разбираться.
Spatial is now, more than ever, just another column- The Geometry Column.
-
- Интересующийся
- Сообщения: 17
- Зарегистрирован: 25 июн 2012, 13:24
- Репутация: 0
Re: Смешения тайликов относительно векторной информации
А можно настройки перепроицирования. И всех конфигов. Я почту вам кину в личку. Доберусь до компа. Буду разбиратся. Спасибо огромное.
[ Сообщение с мобильного устройства ]
[ Сообщение с мобильного устройства ]
- Denis Rykov
- Гуру
- Сообщения: 3376
- Зарегистрирован: 11 апр 2008, 21:09
- Репутация: 529
- Ваше звание: Author
- Контактная информация:
Re: Смешения тайликов относительно векторной информации
Ещё актуально? Есть подозрения, что в gdal2tiles закрался какой-то баг, который случается когда на вход подаётся растр в меркаторе, потому как у меня до разбивики на тайлы растр ложиться куда надо, а после тайлирования - улетает, причём это происходит не на всех растрах, разбираюсь. Перепроецировал растр к EPSG:4326 и потаилил - никаких проблем. Свой пример обновил.
Spatial is now, more than ever, just another column- The Geometry Column.
-
- Интересующийся
- Сообщения: 17
- Зарегистрирован: 25 июн 2012, 13:24
- Репутация: 0
Re: Смешения тайликов относительно векторной информации
Вот это интересует, как вы это сделали? )Denis Rykov писал(а):Перепроецировал растр к EPSG:4326.
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость