Trabajo con una proyección local italiana (EPSG:3003 Monte Mario Italia zona 1) y había cargado esta proyección en mi proyecto para que evitate reproyectara todos mis datos.
Había creado la pirámide de azulejos con la última versión de gdal2tiles (la versión enviada con la última versión de maptiler open source [ver [http://trac.osgeo.org/gdal/ticket/2052\]](http://trac.osgeo.org/gdal/ticket/2052]) para poder generar fichas jpeg en lugar de fichas png)
mi problema es que no consigo asignar la extensión correcta a mi página. Si asigno a la montemarioProjection la extensión para Italia, también esta extensión se aplica a mi mapa, pero mi mapa contiene sólo el municipio de módena. Mi extensión de tms de modena, calculada por gdal2tiles, parece ser ignorada.
cuando intento hacer un paneo a un determinado punto de coordenadas en el sistema de coordenadas de monte mario, el mapa va en un lugar equivocado, porque no está bien posicionado.
algunos ejemplos: (AQUÍ HABÍA ASIGNADO A MONTE MARIO SÓLO LA EXTENSIÓN DE MÓDENA COMO EXTENSIÓN, NO ITALIA)
EJEMPLO 1 http://mappe-t.comune.modena.it/ortofoto/2014/ol3_ortofoto.html
(AQUÍ LE HABÍA ASIGNADO A MONTE MARIO SU EXTENSIÓN REAL Y TRATABA DE FORZAR EL ORIGEN DEL MAPA, PERO FUE IGNORADO. TENGO QUE QUITAR el parámetro extent de ol.layer.tile y ol.view)
EJEMPLO 2 http://mappe-t.comune.modena.it/ortofoto/2014/ol3_ortofoto2.html
ver líneas 111-115
origin: tileGrid: new ol.tilegrid.TileGrid({
//tileGrid: new ol.tilegrid.XYZ({
origin: tms_origin,
resolutions: tms_resolutions
}),
SI SE MIRA EL CONTROL DE LA POSICIÓN DEL RATÓN, LAS COORDENADAS ESTÁN MAL EN EL EJEMPLO 1 Y 2
AQUÍ ESTÁ TODO MI CÓDIGO DEL EJEMPLO 2 (SIN PARTES COMENTADAS)
var tms_extent = [ 1640349.34499999997206, 4935769.97499999962747, 1659997.04499999992549, 4956992.87500000000000 ];
var tms_origin = [1640349.34499999997206, 4935769.97499999962747];
var tms_resolutions = [
12.79999999999997, 6.39999999999999, 3.19999999999999, 1.60000000000000,
0.80000000000000, 0.40000000000000, 0.20000000000000, 0.10000000000000
];
var city_center = [ 1652769.73, 4945475.55 ];
var monteMarioSystemCode = 'EPSG:3003';
var projectionMonteMario = ol.proj.get(monteMarioSystemCode);
var extent_italia_monte_mario = [1290679.24, 4194066.17, 2226886.34, 5259894.49];
projectionMonteMario.setExtent(extent_italia_monte_mario);
var map = new ol.Map({
controls: ol.control.defaults({ attribution: false }).extend(
[ new ol.control.ZoomSlider(),
new ol.control.ScaleLine(),
new ol.control.MousePosition({
coordinateFormat: ol.coordinate.createStringXY(4),
projection: monteMarioSystemCode,
undefinedHTML: ' '
})
]),
layers : [ new ol.layer.Tile({
source : new ol.source.XYZ({
crossOrigin : null,
//experimental parameter
projection : monteMarioSystemCode,
//experimental parameter (necessary because gdal2tiles generate tiles in TMS mode not in XYZ mode)
tileUrlFunction : function(coordinate) {
if (coordinate == null) {
return "";
}
// type of ol.TileCoord is recently changed to an array of three numbers: [z, x, y]
var z = coordinate[0];
var x = coordinate[1];
var y = (1 << z) - coordinate[2] - 1;
return 'http://mappe-t.comune.modena.it/ortofoto/2014/tms2014/' + z + '/' + x + '/' + y + '.jpg';
},
//this works only for tiles generated in XYZ format, es maptiler pro
//url : 'http://mappe-t.comune.modena.it/ortofoto/2014/tms2014/{z}/{x}/{y}.jpg'
//experimental parameter (inherited from ol.source.TileImage)
tileGrid: new ol.tilegrid.TileGrid({
origin: tms_origin,
resolutions: tms_resolutions
}),
})
}) ],
renderer : 'canvas',
target : 'map',
view : new ol.View({
projection : monteMarioSystemCode,
center : city_center,
maxZoom : 10,
minZoom : 3,
zoom : 3
})
});
TMS TILE MAP RESOURCE http://mappe-t.comune.modena.it/ortofoto/2014/tms2014/tilemapresource.xml