var map, layer,vectors,popup; OpenLayers.ProxyHost = "proxy.php?url="; var style_red = { strokeColor: "#FF0000", fillColor: "#00FFFF", fillOpacity: 0.75, strokeWidth: 4, //strokeDashstyle: "dashdot", pointRadius: 6, pointerEvents: "visiblePainted" }; function init(){ //local="http://91.219.105.54:8080/geoserver/wms"; var local="http://e-cmentarze.com:8080/geoserver/wms"; var mapserv = '/cgi-bin/mapserv?map=/var/www/ecm/wms/hodyszewo.map'; var skale=[50,100,150,200,250,500,1000,2000,2500,5000,10000]; Proj4js.defs["EPSG:2180"] = "+proj=tmerc +lat_0=0 +lon_0=19 +k=0.9993 +x_0=500000 +y_0=-5300000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"; map = new OpenLayers.Map( $('map'),{projection: new OpenLayers.Projection("EPSG:2180"), units: 'm', restrictedExtent: new OpenLayers.Bounds(754585.376,558620.606,754863.324,558812.489),scales: skale, controls: []}); empty= new OpenLayers.Layer("", {displayInLayerSwitcher: false, isBaseLayer: true, maxExtent: new OpenLayers.Bounds(754585.376,558620.606,754863.324,558812.489), scales: skale}); var osoby = new OpenLayers.Layer.WMS( "Osoby", mapserv, {layers: 'osoby',format: 'image/png',transparent: 'true'},{displayInLayerSwitcher: false, visibility: true, singleTile: true, transitionEffect: 'resize',isBaseLayer: false, projection: 'EPSG:2180',units: 'm', maxExtent: new OpenLayers.Bounds(754585.376,558620.606,754863.324,558812.489), scales: skale}); var groby = new OpenLayers.Layer.WMS( "groby", mapserv, {layers: 'groby,sektory',format: 'image/png',transparent: 'true'},{visibility: true, singleTile: true, transitionEffect: 'resize',isBaseLayer: false, projection: 'EPSG:2180',units: 'm', maxExtent: new OpenLayers.Bounds(754585.376,558620.606,754863.324,558812.489), scales: skale}); var groby_info = new OpenLayers.Layer.WMS( "groby", mapserv, {layers: 'groby',format: 'image/png',transparent: 'true'},{visibility: true, singleTile: true, transitionEffect: 'resize',isBaseLayer: false, projection: 'EPSG:2180',units: 'm', maxExtent: new OpenLayers.Bounds(754585.376,558620.606,754863.324,558812.489), scales: skale}); //var sektory = new OpenLayers.Layer.WMS( "sektory", mapserv, {layers: 'sektory',format: 'image/png',transparent: 'true'},{visibility: true, singleTile: true, transitionEffect: 'resize',isBaseLayer: false, projection: 'EPSG:2180',units: 'm', maxExtent: new OpenLayers.Bounds(754585.376,558620.606,754863.324,558812.489), scales: skale}); rzedy = new OpenLayers.Layer.WMS( "rzedy", mapserv, {layers: 'rzedy',format: 'image/png',transparent: 'true'},{visibility: true, singleTile: true, transitionEffect: 'resize',isBaseLayer: false, projection: 'EPSG:2180',units: 'm', maxExtent: new OpenLayers.Bounds(754585.376,558620.606,754863.324,558812.489), scales: skale}); layerorto=new OpenLayers.Layer.WMS( "Ortofotomapa", 'http://sdi.geoportal.gov.pl/wms_orto/wmservice.aspx', {layers: 'ORTOFOTO',format: 'image/jpeg',transparent: 'false'},{singleTile: true, visibility: true, transitionEffect: 'resize',isBaseLayer: false, projection: 'EPSG:2180',units: 'm', maxExtent: new OpenLayers.Bounds(754585.376,558620.606,754863.324,558812.489), scales: [500,1000,2000,2500]}); layertopo=new OpenLayers.Layer.WMS( "Mapa topograficzna", 'http://sdi.geoportal.gov.pl/wms_topo/wmservice.aspx', {layers: 'TOPO_10_92',format: 'image/jpeg',transparent: 'false'},{singleTile: true, visibility: true, transitionEffect: 'resize',isBaseLayer: false, projection: 'EPSG:2180',units: 'm', maxExtent: new OpenLayers.Bounds(754585.376,558620.606,754863.324,558812.489), scales: [5000]}); layertopo25=new OpenLayers.Layer.WMS( "Mapa topograficzna", 'http://sdi.geoportal.gov.pl/wms_topo/wmservice.aspx', {layers: 'TOPO_25_65',format: 'image/jpeg',transparent: 'false'},{singleTile: true, visibility: true, transitionEffect: 'resize',isBaseLayer: false, projection: 'EPSG:2180',units: 'm', maxExtent: new OpenLayers.Bounds(754585.376,558620.606,754863.324,558812.489), scales: [10000]}); map.addLayer(layerorto); map.addLayer(layertopo); map.addLayer(layertopo25); map.addLayer(groby); //map.addLayer(osoby); //map.addLayer(sektory); map.addLayer(rzedy); map.addLayer(empty); vectors = new OpenLayers.Layer.Vector("Vector Layer"); vectors.style=style_red; map.addLayer(vectors); var scaleStore = new GeoExt.data.ScaleStore({map: map}); var zoomSelector = new Ext.form.ComboBox({ store: scaleStore, emptyText: "Zoom Level", tpl: '
1 : {[parseInt(values.scale)]}
', editable: false, triggerAction: 'all', // needed so that the combo box doesn't filter by its current content mode: 'local' // keep the combo box from forcing a lot of unneeded data refreshes }); zoomSelector.on('select', function(combo, record, index) { map.zoomTo(record.data.level); }, this ); map.events.register('zoomend', this, function() { var scale = scaleStore.queryBy(function(record){ return this.map.getZoom() == record.data.level; }); if (scale.length > 0) { scale = scale.items[0]; zoomSelector.setValue("1 : " + parseInt(scale.data.scale,10)); } else { if (!zoomSelector.rendered) {return;} zoomSelector.clearValue(); } }); var ctrl, toolbarItems = [], action, actions = {}; // ZoomToMaxExtent control, a "button" control action = new GeoExt.Action({ control: new OpenLayers.Control.ZoomToMaxExtent(), map: map, text: "Pokaż wszystko", tooltip: "zoom to max extent" }); actions.max_extent = action; toolbarItems.push(action); toolbarItems.push("-"); // Navigation history - two "button" controls ctrl = new OpenLayers.Control.NavigationHistory(); map.addControl(ctrl); action = new GeoExt.Action({ text: "", control: ctrl.previous, disabled: true, tooltip: "previous in history" }); actions.previous = action; toolbarItems.push(action); action = new GeoExt.Action({ text: "", control: ctrl.next, disabled: true, tooltip: "next in history" }); actions.next = action; toolbarItems.push(action); toolbarItems.push("-"); geoext = new GeoExt.MapPanel({ renderTo: 'gxmap', height: document.getElementById('gxmap').offsetHeight, width: document.getElementById('gxmap').offsetWidth, map: map, title: '',//Nazwa cmentarza jako zmienna dla każdego bbar: [zoomSelector], tbar: toolbarItems}); var lengthm = new OpenLayers.Control.Measure(OpenLayers.Handler.Path, { eventListeners: { measurepartial: function(evt) { document.getElementById('measure').innerHTML="odległość " + evt.measure.toFixed(3) + evt.units; } } }); var aream = new OpenLayers.Control.Measure(OpenLayers.Handler.Polygon, { eventListeners: { measurepartial: function(evt) { document.getElementById('measure').innerHTML="powierzchnia " + evt.measure.toFixed(3) + evt.units +"2"; } } }); geoext.map.addControl(lengthm); geoext.map.addControl(aream); var toggleGroup = "measure controls"; var lengthb = new Ext.Button({ text: 'Odległość', enableToggle: true, toggleGroup: toggleGroup, group: "draw", handler: function(toggled){ if (toggled) { lengthm.activate(); aream.deactivate(); } else { lengthm.deactivate(); } } }); var areab = new Ext.Button({ text: 'Powierzchnia', enableToggle: true, toggleGroup: toggleGroup, group: "draw", handler: function(toggled){ if (toggled) { aream.activate(); lengthm.deactivate(); } else { aream.deactivate(); } } }); var info = new Ext.Button({ text: 'Wskaż pomnik', enableToggle: false, toggleGroup: toggleGroup, group: "draw", handler: function(toggled){ if (toggled) { featureInfo.activate(); aream.deactivate(); lengthm.deactivate(); } else { aream.deactivate(); lengthm.deactivate(); featureInfo.deactivate(); } } }); var pan = new Ext.Button({ text: 'Przesuwanie', enableToggle: false, toggleGroup: toggleGroup, group: "draw", handler: function(toggled){ if (toggled) { featureInfo.deactivate(); aream.deactivate(); lengthm.deactivate(); } else { aream.deactivate(); lengthm.deactivate(); featureInfo.deactivate(); } } }); var search = new Ext.Button({ text: 'Szukaj osoby pochowanej', id: 'show-btn', enableToggle: false, toggleGroup: null, group: "draw", handler: function(toggled){ if (toggled) { window.open ("szukaj.php?cmentarz=hodyszewo", "mywindow","status=0,toolbar=0, height=400, width=650,scrollbars=1").focus(); } else { ; } } }); var print = new Ext.Button({ text: 'Drukuj widok', id: 'print-btn', enableToggle: false, toggleGroup: null, group: "print", handler: function(toggled){ if (toggled) { drukuj(); } else { ; } } }); /*var legend = new Ext.Button({ text: 'Legenda', enableToggle: false, toggleGroup: null, group: "draw", handler: function(toggled){ if (toggled) { legenda(); } else { win2.hide(); } } });*/ /* var pomoc = new Ext.Button({ text: 'Pomoc', enableToggle: false, toggleGroup: null, //group: "draw", handler: function(toggled){ if (toggled) { window.open ("pomoc.html", "mywindow","status=0,toolbar=0, height=400, width=550,scrollbars=1"); } else { //win2.hide(); } } }); */ geoext.getTopToolbar().addButton(pan); geoext.getTopToolbar().addButton(lengthb); geoext.getTopToolbar().addButton(areab); geoext.getTopToolbar().addSeparator(); geoext.getTopToolbar().addButton(search); geoext.getTopToolbar().addButton(info); geoext.getTopToolbar().addSeparator(); geoext.getTopToolbar().addButton(print); geoext.getTopToolbar().addSeparator(); //geoext.getTopToolbar().addButton(legend); //geoext.getTopToolbar().addButton(pomoc); var layerRoot = new Ext.tree.TreeNode({ text: "Warstwy", expanded: true }); var layerList = new GeoExt.tree.LayerContainer({ text: 'Warstwy tematyczne', layerStore: geoext.layers, leaf: false, expanded: true }); /*var layerList2 = new GeoExt.tree.LayerContainer({ text: 'Warstwy referencyjne', layerStore: geoext.layers, leaf: false, expanded: true, loader: { filter: function(record) { return record.get("layer").name=='ORTO'||record.get("layer").name=='BDO'||record.get("layer").name=='TOPO'||record.get("layer").name=='OpenStreetMap'||record.get("layer").name=='Ortofotomapa' }, baseAttrs: { checkedGroup: "rastry" } } });*/ //layerRoot.appendChild(layerList); //layerRoot.appendChild(layerList2); /*var layerTree = new Ext.tree.TreePanel({ title: 'Lista warstw', renderTo: 'menu', enableDD: true, width: 210, height: 200, collapsible: true, autoScroll: true, root: layerList });*/ /*var groupLayerNode = new GeoExt.tree.LayerNode({ layer: granica, leaf: false, expanded: true, loader: { param: "LAYERS" } });*/ map.addControl(new OpenLayers.Control.Navigation()); //map.addControl(new OpenLayers.Control.OverviewMap()); scalebar = new OpenLayers.Control.ScaleLine({div: document.getElementById("scaleline-id"),bottomOutUnits:'',bottomInUnits:'',maxWidth:200}); map.addControl(scalebar); //map.addControl(new OpenLayers.Control.Permalink()); map.addControl(new OpenLayers.Control.Permalink('permlink')); map.addControl(new OpenLayers.Control.MousePosition({div: document.getElementById('position')})); var pos2 = new OpenLayers.Control.MousePosition({div: document.getElementById('position2')}); //pos2.Projection = new OpenLayers.Projection("EPSG:2180"); pos2.displayProjection = new OpenLayers.Projection("EPSG:4326"); map.addControl(pos2); map.addControl(new OpenLayers.Control.PanZoomBar()); //map.addControl(new OpenLayers.Control.MouseToolbar()); //layermngr=new OpenLayers.Control.LayerSwitcher({'div':OpenLayers.Util.getElement('menu-layers'), roundedCorners: false}); //map.addControl(layermngr); //layermngr.maximizeControl(); if (!map.getCenter()) map.zoomToExtent(new OpenLayers.Bounds(754585.376,558620.606,754863.324,558812.489)); //if (!map.getCenter()) map.zoomToScale(0.001,true); /* var panel = new OpenLayers.Control.Panel({ div: document.getElementById("panel") }); map.addControl(panel); var history = new OpenLayers.Control.NavigationHistory(); map.addControl(history); panel.addControls([history.previous, history.next]); */ var featureInfo = new OpenLayers.Control.WMSGetFeatureInfo({queryVisible: true,layers: [groby_info,osoby]}); featureInfo.events.on({ getfeatureinfo: function(e) { if (popup!=null) popup.destroy(); popup=new GeoExt.Popup({ title: "Informacje o grobie", width: 300, height: 400, autoScroll: true, anchored: false, map: map, panIn: true, collapsible: true, x: 270, y: 100, html: e.text, listeners: { close: function() { // closing a popup destroys it, but our reference is truthy popup = null; } } }); //document.getElementById('featureinfo').innerHTML=e.text; popup.show(); } }); map.addControl(featureInfo); //featureInfo.Layers=[punkty,szlaki] featureInfo.activate(); /*legendPanel = new GeoExt.LegendPanel({ defaults: { labelCls: 'mylabel', style: 'padding:5px' }, bodyStyle: 'padding:5px', width: 350, autoScroll: true, region: 'west' });*/ } function deserialize(wkt) { vectors.removeAllFeatures(); //var element = document.getElementById('text'); //var type = document.getElementById("formatType").value; var features = new OpenLayers.Format.WKT().read(wkt); var bounds; if(features) { if(features.constructor != Array) { features = [features]; } for(var i=0; i 1) ? 's' : ''; //element.value = features.length + ' feature' + plural + ' added'; } else { //element.value = 'Bad input ' + type; alert('blad geometrii'); } }