[Gfoss] openlayers+osm problemi tile

On Fri, Dec 26, 2008 at 07:42:51PM +0100, Luca Delucchi wrote:

vorrei aggiungere il layer di OpenStreetMap in Openlayers, non da
nessun errore ma quando provo a visualizzare il layer di OSM si vedono
tutte le tile rose, penso sia un problema di proiezione, infatti tutti
gli altri layer sono in WGS84 mentre quello di OSM è in epsg:900913,

Il problema dovrebbe proprio essere che in PROJ non c'è codesto
sistema di riferimento. Sulla mia Linux box ho risolto editando
/usr/share/proj/epsg e aggiungendo due righe:

# Spherical Mercator
<900913> +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 +no_defs

Qui ho preso due appunti:

http://www.rigacci.org/wiki/doku.php/tecnica/gps_cartografia_gis/openlayers_900913

Saluti e auguri!

--
Niccolo Rigacci
Firenze - Italy

Io uso osmarender [1] ... allego uno stralcio di codice se può essere utile.

var options = {
    maxExtent: new
OpenLayers.Bounds(-20037508.34,-20037508.34,20037508.34,20037508.34),
    numZoomLevels:18,
    maxResolution:156543.0339,
    units:'m',
    projection: new OpenLayers.Projection("EPSG:900913"),
    displayProjection: new OpenLayers.Projection("EPSG:4326")
}

map = new OpenLayers.Map(divmap,options);
map.addControl(new OpenLayers.Control.LayerSwitcher());

    var gphy = new OpenLayers.Layer.Google(
        "Google Physical",
        {type: G_PHYSICAL_MAP,'sphericalMercator': true}
    );
    var gmap = new OpenLayers.Layer.Google(
        "Google Streets",{'sphericalMercator': true} // the default
    );
    var ghyb = new OpenLayers.Layer.Google(
        "Google Hybrid",
        {type: G_HYBRID_MAP,'sphericalMercator': true}
    );
    var gsat = new OpenLayers.Layer.Google(
        "Google Satellite",
        {type: G_SATELLITE_MAP,'sphericalMercator': true}
    );
    var osmarender = new OpenLayers.Layer.OSM.Osmarender("Osmarender", {
    displayOutsideMaxExtent: true,
    wrapDateLine: true
    });

map.addLayers([gphy, gmap, ghyb, gsat,osmarender]);
map.setCenter(new OpenLayers.LonLat(10.2, 48.9), 5);

Giovanni

[1] http://www.openstreetmap.org/openlayers/OpenStreetMap.js