1){ echo "alert('savewmc: ID not unique!');"; } $e_id_css = "savewmc"; include("../include/dyn_js.php"); echo "mod_savewmc_target = '".$e_target."';"; ?> function setOnUnload() { document.getElementsByTagName('body')[0].setAttribute("onUnload", "mod_savewmc('session');"); } try {if (saveInSession) {}}catch(e) {saveInSession = 0;} if (saveInSession == '1') { mb_registerInitFunctions('setOnUnload()'); } var mod_savewmc_img = new Image(); mod_savewmc_img.src = ""; //var mod_savewmc_img_over = new Image(); mod_savewmc_img_over.src = ""; //0 = Keine Anführungszeichen umwandeln //1 = Nur einfache Anführungszeichen umwandeln //2 = Nur doppelte Anführungszeichen umwandeln (Standardeinstellung) //3 = Beide Arten (einfache und doppelte Anführungszeichen) umwandeln function htmlspecialchars(str,typ) { if(typeof str=="undefined") str=""; if(typeof typ!="number") typ=2; typ=Math.max(0,Math.min(3,parseInt(typ))); var html=new Array(); html[38]="&"; html[60]="&#60;"; html[62]="&#62;"; if(typ==1 || typ==3) html[39]="&#39;"; if(typ==2 || typ==3) html[34]="&#34;"; for(var i in html) { if (typeof(html[i]) != 'function') { var functionString ="str=str.replace('"+String.fromCharCode(i)+"',\""+html[i]+"\");"; eval(functionString); } } return str; } function mod_savewmc(title){ var user = ""; var ind = getMapObjIndexByName(mod_savewmc_target); var session = 0; if (title) { var generalTitle = htmlspecialchars(title,0); title_alert = 0; if (title == 'session') { session = 1; } } else { var generalTitle = htmlspecialchars(prompt("Save WMC as..."),0); title_alert = 1; } if (generalTitle != null){ var wmc = ""; // ViewContext variables var version = "1.0.0"; var id = ""; var jetzt = new Date(); id += jetzt.getTime(); // General variables var generalWidth = mb_mapObj[ind].width; var generalHeight = mb_mapObj[ind].height; var generalBboxSrs = mb_mapObj[ind].epsg; var arrayBBox = mb_mapObj[ind].extent.split(","); var generalBboxMinx = parseFloat(arrayBBox[0]); var generalBboxMiny = parseFloat(arrayBBox[1]); var generalBboxMaxx = parseFloat(arrayBBox[2]); var generalBboxMaxy = parseFloat(arrayBBox[3]); var generalName = "Mapbender WMC"; // TO do : insert proper data var generalKeywords = new Array('Mapbender', 'WMC'); // TO do : insert proper data var generalAbstract = ""; // TO do : insert proper data var generalLogoUrl = ""; // TO do : insert proper data var generalLogoUrlWidth = ""; // TO do : insert proper data var generalLogoUrlHeight = ""; // TO do : insert proper data var generalLogoUrlFormat = ""; // TO do : insert proper data var generalDescriptionUrl = ""; // TO do : insert proper data var generalContactPerson = ""; var generalContactOrganization = ""; var generalContactPosition = ""; var generalContactAddressType = ""; var generalContactAddress = ""; var generalContactCity = ""; var generalContactStateOrProvince = ""; var generalContactPostCode = ""; var generalContactCountry = ""; var generalContactVoiceTelephone = ""; var generalContactFacsimileTelephone = ""; var generalContactElectronicMailAddress = ""; var extension_namespace = "mapbender"; // LayerList variables var layerHidden = ""; var layerQueryable = ""; var layerAbstract = ""; var layerName = ""; var layerSrs = ""; var layerDataUrl = ""; var layerMetadataUrl = ""; var layerFormat = ""; var layerFormat_current = ""; var layerStyle_current = ""; var layerStyle_name = ""; var layerStyle_title = ""; var layerStyle_legendURL = ""; var layerStyle_legendURL_width = ""; var layerStyle_legendURL_height = ""; var layerStyle_legendURL_format = ""; // Missing: Extension //ViewContext wmc += "<?xml version=\"1.0\" encoding=\"\"?>"; // wmc += "<!ENTITY amp \"&#38;#38;\">\n"; wmc += "<ViewContext version=\"" + version + "\" "; wmc += "id = \"" + id + "\" "; wmc += "xmlns=\"http://www.opengis.net/context\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" xmlns:mapbender=\"http://www.mapbender.org\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xsi:SchemaLocation=\"http://schemas.opengis.net/context/1.0.0/context.xsd\" "; wmc += ">\n"; //General wmc += "\t<General>\n"; if (generalWidth && generalHeight){ wmc += "\t\t<Window width=\"" + generalWidth + "\" height=\"" + generalHeight + "\" />\n"; } wmc += "\t\t<BoundingBox SRS=\"" + generalBboxSrs + "\" minx =\"" + generalBboxMinx + "\" "; wmc += "miny =\"" + generalBboxMiny + "\" maxx =\"" + generalBboxMaxx + "\" maxy =\"" + generalBboxMaxy + "\" />\n"; wmc += "\t\t<Name>" + generalName + "</Name>\n"; wmc += "\t\t<Title>" + generalTitle + "</Title>\n"; if (generalKeywords){ wmc += "\t\t<KeywordList>\n"; for (var i = 0; i < generalKeywords.length ; i++) { wmc += "\t\t\t<Keyword>" + generalKeywords[i] + "</Keyword>\n"; } wmc += "\t\t</KeywordList>\n"; } if (generalAbstract){ wmc += "\t\t<Abstract>" + generalAbstract + "</Abstract>\n"; } if (generalLogoUrlWidth && generalLogoUrlHeight && generalLogoUrlFormat && generalLogoUrl){ wmc += "\t\t<LogoURL width = \"" + generalLogoUrlWidth + "\" "; wmc += "height = \"" + generalLogoUrlHeight + "\" "; wmc += "format = \"" + generalLogoUrlFormat + "\">\n"; wmc += "\t\t\t<OnlineResource xmlns:xlink=\"http://www.w3.org/1999/xlink\" xlink:type = \"simple\" xlink:href=\"" + generalLogoUrl + "\" />\n"; wmc += "\t\t</LogoUrl>\n"; } if (generalDescriptionUrl){ wmc += "\t\t<DescriptionURL>\n"; wmc += "\t\t\t<OnlineResource xmlns:xlink=\"http://www.w3.org/1999/xlink\" xlink:type = \"simple\" xlink:href=\"" + generalDescriptionUrl + "\" />\n"; wmc += "\t\t</DescriptionUrl>\n"; } if (generalContactElectronicMailAddress || generalContactOrganization || generalContactPerson || generalContactPosition || generalContactAddressType || generalContactAddress || generalContactCity || generalContactStateOrProvince || generalContactPostCode || generalContactCountry || generalContactVoiceTelephone || generalContactFacsimileTelephone || generalContactElectronicMailAddress){ wmc += "\t\t<ContactInformation>\n"; if (generalContactPerson || generalContactOrganization){ wmc += "\t\t\t<ContactPersonPrimary>\n"; if (generalContactPerson){ wmc += "\t\t\t\t<ContactPerson>" + generalContactPerson + "</ContactPerson>\n"; } if (generalContactOrganization){ wmc += "\t\t\t\t<ContactOrganization>" + generalContactOrganization + "</ContactOrganization>\n"; } wmc += "\t\t\t</ContactPersonPrimary>\n"; } if (generalContactPosition){ wmc += "\t\t\t<ContactPosition>" + generalContactPosition + "</ContactPosition>\n"; } if (generalContactAddressType || generalContactAddress || generalContactCity || generalContactStateOrProvince || generalContactPostCode || generalContactCountry){ wmc += "\t\t\t<ContactAddress>\n"; if (generalContactAddressType){ wmc += "\t\t\t\t<AddressType>" + generalContactAddressType + "</AddressType>\n"; } if (generalContactAddress){ wmc += "\t\t\t\t<Address>" + generalContactAddress + "</Address>\n"; } if (generalContactCity){ wmc += "\t\t\t\t<City>" + generalContactCity + "</City>\n"; } if (generalContactStateOrProvince){ wmc += "\t\t\t\t<StateOrProvince>" + generalContactStateOrProvince + "</StateOrProvince>\n"; } if (generalContactPostCode){ wmc += "\t\t\t\t<PostCode>" + generalContactPostCode + "</PostCode>\n"; } if (generalContactCountry){ wmc += "\t\t\t\t<Country>" + generalContactCountry + "</Country>\n"; } wmc += "\t\t\t</ContactAddress>\n"; } wmc += "\t\t\t<ContactVoiceTelephone>" + generalContactVoiceTelephone + "</ContactVoiceTelephone>\n"; wmc += "\t\t\t<ContactFacsimileTelephone>" + generalContactFacsimileTelephone + "</ContactFacsimileTelephone>\n"; wmc += "\t\t\t<ContactElectronicMailAddress>" + generalContactElectronicMailAddress + "</ContactElectronicMailAddress>\n"; wmc += "\t\t</ContactInformation>\n"; } wmc += "\t</General>\n"; //layerList wmc += "\t<LayerList>\n"; for (var i = 0; i < mb_mapObj[ind].wms.length; i++){ wmsId = mb_mapObj[ind].wms[i].wms_id; var wms_epsg = new Array(); wms_epsg[0] = mb_mapObj[ind].epsg; if (mb_mapObj[ind].wms[i].gui_wms_epsg != mb_mapObj[ind].epsg){ wms_epsg[1] = mb_mapObj[ind].wms[i].gui_wms_epsg; } for (q = 0; q < mb_mapObj[ind].wms[i].gui_epsg.length ; q ++){ var isInArray = false; for (r = 0 ; r < wms_epsg.length ; r ++){ if (wms_epsg[r] == mb_mapObj[ind].wms[i].gui_epsg[q]){ isInArray = true; } } if (isInArray == false){ wms_epsg[wms_epsg.length] = mb_mapObj[ind].wms[i].gui_epsg[q]; } } for (var j = 0; j < mb_mapObj[ind].wms[i].objLayer.length; j++){ if (mb_mapObj[ind].wms[i].objLayer[j].layer_parent != ''){ if (mb_mapObj[ind].wms[i].objLayer[j].gui_layer_visible == '1'){ layerHidden = 0; } else{ layerHidden = 1; } layerQueryable = mb_mapObj[ind].wms[i].objLayer[j].layer_queryable; layerQuerylayer = mb_mapObj[ind].wms[i].objLayer[j].gui_layer_querylayer; layerId = mb_mapObj[ind].wms[i].objLayer[j].layer_uid; layerName = htmlspecialchars(mb_mapObj[ind].wms[i].objLayer[j].layer_name,0); layerTitle = htmlspecialchars(mb_mapObj[ind].wms[i].objLayer[j].layer_title, 0); layerAbstract = mb_mapObj[ind].wms[i].wms_abstract; //To Do: insert actual abstract layerDataUrl = mb_mapObj[ind].wms[i].objLayer[j].layer_dataurl_href; layerMetadataUrl = mb_mapObj[ind].wms[i].objLayer[j].layer_metadataurl; layerMinscale = mb_mapObj[ind].wms[i].objLayer[j].layer_minscale; layerMaxscale = mb_mapObj[ind].wms[i].objLayer[j].layer_maxscale; wmsVersion = mb_mapObj[ind].wms[i].wms_version; wmsTitle = htmlspecialchars(mb_mapObj[ind].wms[i].wms_title,0) ; wmsOnlineResource = mb_mapObj[ind].wms[i].wms_getmap; wmc += "\t\t<Layer queryable = \"" + layerQueryable + "\" hidden = \"" + layerHidden + "\">\n"; wmc += "\t\t\t<Server service = \"OGC:WMS\" version = \"" + wmsVersion + "\" title = \"" + wmsTitle + "\">\n"; wmc += "\t\t\t\t<OnlineResource xmlns:xlink=\"http://www.w3.org/1999/xlink\" xlink:type=\"simple\" xlink:href=\"" + wmsOnlineResource + "\" />\n"; wmc += "\t\t\t</Server>\n"; wmc += "\t\t\t<Name>" + layerName + "</Name>\n"; wmc += "\t\t\t<Title>" + layerTitle + "</Title>\n"; if (layerAbstract){ wmc += "\t\t\t<Abstract>" + layerAbstract + "</Abstract>\n"; } wmc += "\t\t\t<SRS>"; for (var k = 0; k < wms_epsg.length ; k ++){ wmc += wms_epsg[k]; if (k < wms_epsg.length-1){ wmc += " "; } } wmc += "</SRS>\n"; if (layerDataUrl){ wmc += "\t\t\t<DataURL>\n"; wmc += "\t\t\t\t<OnlineResource xmlns:xlink=\"http://www.w3.org/1999/xlink\" xlink:type = \"simple\" xlink:href=\"" + layerDataUrl + "\" />\n"; wmc += "\t\t\t</DataURL>\n"; } if (layerMetadataUrl){ wmc += "\t\t\t<MetadataURL>\n"; wmc += "\t\t\t\t<OnlineResource xmlns:xlink=\"http://www.w3.org/1999/xlink\" xlink:type = \"simple\" xlink:href=\"" + layerMetadataUrl + "\" />\n"; wmc += "\t\t\t</MetadataURL>\n"; } wmc += "\t\t\t<Extension>\n"; if (layerMinscale && layerMaxscale) { wmc += "\t\t\t\t<"+extension_namespace+":ScaleHint min=\""+layerMinscale+"\" max=\""+layerMaxscale+"\"/>\n"; } wmc += "\t\t\t\t<"+extension_namespace+":layer_id>"+layerId+"</"+extension_namespace+":layer_id>\n"; wmc += "\t\t\t\t<"+extension_namespace+":wms_id>"+wmsId+"</"+extension_namespace+":wms_id>\n"; wmc += "\t\t\t\t<"+extension_namespace+":querylayer>"+layerQuerylayer+"</"+extension_namespace+":querylayer>\n"; wmc += "\t\t\t</Extension>\n"; //layerFormat wmc += "\t\t\t<FormatList>\n"; var data_format_current = false; for (var k = 0; k < wms[i].data_format.length; k++){ if (wms[i].data_type[k] == 'map') { layerFormat = mb_mapObj[ind].wms[i].data_format[k]; wmc += "\t\t\t\t<Format"; if (data_format_current == false && ( (mb_mapObj[ind].wms[i].data_format[k] == mb_mapObj[ind].wms[i].gui_wms_mapformat) || (k == wms[i].data_format.length-1) )){ wmc += " current = \"1\""; data_format_current = true; } wmc += ">" + layerFormat + "</Format>\n"; } } wmc += "\t\t\t</FormatList>\n"; // LayerStyle wmc += "\t\t\t<StyleList>\n"; for (var k = 0; k < 1; k++){ if (k == 0){ layerStyle_current = 1; // To do: insert proper data } else{ layerStyle_current = 0; // To do: insert proper data } wmc += "\t\t\t\t<Style"; layerStyleSLD = ""; if (layerStyleSLD){ layerStyleSLDUrl = ""; // To Do: Insert Proper Data wmc += "\t\t\t\t\t\t<OnlineResource xmlns:xlink=\"http://www.w3.org/1999/xlink\" xlink:type=\"simple\" xlink:href=\"" + layerStyleSLDUrl + "\" />\n"; } else{ if (mb_mapObj[ind].wms[i].objLayer[j].layer_style[k]){ layerStyle_name = mb_mapObj[ind].wms[i].objLayer[j].layer_style[k]['name']; layerStyle_title = mb_mapObj[ind].wms[i].objLayer[j].layer_style[k]['title']; layerStyle_legendUrl = mb_mapObj[ind].wms[i].objLayer[j].layer_style[k]["legendurl"]; } else{ layerStyle_name = "default"; layerStyle_title = "default"; layerStyle_legendUrl = ""; } layerStyle_legendUrl_width = ""; // To Do: add proper data layerStyle_legendUrl_height = ""; // To Do: add proper data layerStyle_legendUrl_format = ""; // To Do: add proper data if (layerStyle_current == 1){ wmc += " current = \"1\""; } wmc += ">\n\t\t\t\t\t<Name>" + layerStyle_name + "</Name>\n"; wmc += "\t\t\t\t\t<Title>" + layerStyle_title + "</Title>\n"; wmc += "\t\t\t\t\t<LegendUrl "; wmc += "width = \"" + layerStyle_legendUrl_width + "\" "; wmc += "height = \"" + layerStyle_legendUrl_height + "\" "; wmc += "format = \"" + layerStyle_legendUrl_format + "\">\n"; wmc += "\t\t\t\t\t\t<OnlineResource xmlns:xlink=\"http://www.w3.org/1999/xlink\" xlink:type=\"simple\" xlink:href=\"" + layerStyle_legendUrl + "\" />\n"; wmc += "\t\t\t\t\t</LegendUrl>\n"; } wmc += "\t\t\t\t</Style>\n"; // Missing: Describe Style via SLD (see: http://center.ccgis/phprojekt/addons/ewiki/index.php?id=links/SLD) } wmc += "\t\t\t</StyleList>\n"; wmc += "\t\t</Layer>\n"; } } } wmc += "\t</LayerList>\n"; wmc += "</ViewContext>\n"; if (session == 1) { var wmc_win = window.open('about:blank', 'wmc_confirm', 'width=200,height=10,left='+Math.round(0.5*screen.width)+',top='+Math.round(0.5*screen.height)); document.sendData.target = 'wmc_confirm'; // document.sendData.target = '_blank'; } document.sendData.action = "../javascripts/mod_insertWmcIntoDb.php"; document.sendData.data.value = user + "____" + generalTitle + "____" + wmc + "____" + id + "____" + title_alert + "____" + session; document.sendData.submit(); } return id; }