Bienvenue sur PostGIS.fr

Bienvenue sur PostGIS.fr , le site de la communauté des utilisateurs francophones de PostGIS.

PostGIS ajoute le support d'objets géographique à la base de données PostgreSQL. En effet, PostGIS "spatialise" le serverur PostgreSQL, ce qui permet de l'utiliser comme une base de données SIG.

Maintenu à jour, en fonction de nos disponibilités et des diverses sorties des outils que nous testons, nous vous proposons l'ensemble de nos travaux publiés en langue française.

source: trunk/workshop-routing-foss4g/web/proj4js/demo/ProjPane.js @ 77

Revision 76, 2.8 KB checked in by djay, 13 years ago (diff)

Ajout du répertoire web

  • Property svn:executable set to *
Line 
1var panes = {
2  mapL: {},
3  mapLL: {},
4  mapR: {}
5};
6
7ProjPane = Class.create();
8ProjPane.prototype = {
9  id: null,
10  map: null,
11  proj: null,
12
13  initialize: function(pane, code) {
14    this.id = pane;
15    if (code) this.setProj(code);
16  },
17
18  updateCoords: function(coords) {
19    document.getElementById(this.id+'_coords').innerHTML = coords.toString();
20    var pt = this.map.getLayerPxFromLonLat(coords);
21    this.marker.moveTo(pt);
22  },
23
24  setProj: function(code) {
25    document.getElementById(this.id+'_proj').value = code; 
26
27    this.proj = new Proj4js.Proj(code);
28    var mapDef = Proj4js.maps[this.proj.srsCode];
29
30    if (this.map) this.map.destroy();
31    this.map = new OpenLayers.Map(this.id, mapDef.mapOptions);
32    this.mapLayer = new OpenLayers.Layer.WMS(mapDef.layerName, mapDef.layerUrl, mapDef.layerParams, mapDef.layerOptions);
33    this.map.addLayer(this.mapLayer);
34
35    this.map.addLayer(new OpenLayers.Layer.Markers(''));
36    this.marker = new OpenLayers.Marker(new OpenLayers.LonLat(0,0));
37    this.map.layers[1].addMarker(this.marker);
38    this.marker.map = this.map;
39    if (window.bounds) {
40      this.map.addLayer(new OpenLayers.Layer.Boxes());
41      this.map.layers[2].addMarker(new OpenLayers.Marker.Box(bounds));
42      this.map.setCenter(bounds.getCenterLonLat());
43    } else {   
44      this.map.zoomToMaxExtent();
45    }   
46    this.map.events.register('click', this.map, this.mapClicked.bind(this));
47
48    document.getElementById(this.id+'_units').innerHTML = this.proj.units; 
49    document.getElementById(this.id+'_title').innerHTML = this.proj.title; 
50    document.getElementById(this.id+'_class').innerHTML = this.proj.projName; 
51  },
52
53  mapClicked: function(ev) { 
54    var olc = this.map.getLonLatFromViewPortPx(ev.xy);
55    c = new Proj4js.Point(olc.lon, olc.lat);
56    this.updateCoords(c);
57 
58    if (this.opposite && this.opposite.proj) {
59      var newCoords = this.proj.transform(c, this.opposite.proj);
60      this.opposite.updateCoords(newCoords);
61    }
62    if (this.common) {
63      var newCoords = this.proj.inverse(c);
64      this.common.updateCoords(newCoords);
65    }
66    if (this.projected1 && this.projected1.proj) {
67      var newCoords = this.projected1.proj.forward(c);
68      this.projected1.updateCoords(newCoords);
69    }
70    if (this.projected2 && this.projected2.proj) {
71      var newCoords = this.projected2.proj.forward(c);
72      this.projected2.updateCoords(newCoords);
73    }
74  }
75};
76
77
78function init() {
79  panes['mapLL'] = new ProjPane('mapLL',Proj4js.defaultDatum);
80  panes['mapL'] = new ProjPane('mapL');
81  panes['mapR'] = new ProjPane('mapR');
82
83  panes['mapLL'].projected1 = panes['mapL'];
84  panes['mapLL'].projected2 = panes['mapR'];
85  panes['mapL'].opposite = panes['mapR'];
86  panes['mapR'].opposite = panes['mapL'];
87  panes['mapL'].common = panes['mapLL'];
88  panes['mapR'].common = panes['mapLL'];
89
90};
91
Note: See TracBrowser for help on using the repository browser.