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