1){ echo "alert('savewmc: ID not unique!');"; } echo "mod_savewmc_target = '".$e_target."';"; ?> var mod_savewmc_img = new Image(); mod_savewmc_img.src = ""; //var mod_savewmc_img_over = new Image(); mod_savewmc_img_over.src = ""; function mod_savewmc(title){ var user = ""; var ind = getMapObjIndexByName(mod_savewmc_target); if (title) { var generalTitle = title; title_alert = 0; } else { var generalTitle = prompt("Save WMC as..."); 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 = ""; // 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 = ""; // Missing: Extension // 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=\"\" ?>\n"; // 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: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"; wmc += "\t\t\t<Keyword>" + generalKeywords + "</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++){ // BEGIN: new code // in the end, this array contains all epsg´s of this wms var wms_epsg = new Array(); // the gui_wms_epsg is always the first epsg in this layer´s epsg list wms_epsg[0] = mb_mapObj[ind].wms[i].gui_wms_epsg; // the epsg of the mapObj has to be in this list if (mb_mapObj[ind].wms[i].gui_wms_epsg != mb_mapObj[ind].epsg){ wms_epsg[1] = mb_mapObj[ind].epsg; } // add all gui_epsg if not already in the array 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]; } } // END: new code 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; layerName = mb_mapObj[ind].wms[i].objLayer[j].layer_name; layerTitle = mb_mapObj[ind].wms[i].objLayer[j].layer_title; layerAbstract = mb_mapObj[ind].wms[i].wms_abstract; //To Do: insert actual abstract layerDataUrl = mb_mapObj[ind].wms[i].objLayer[j].layer_dataurl_href; //layerDataUrl = mb_mapObj[ind].wms[i].objLayer[j].layer_dataurl_href; layerMetadataUrl = mb_mapObj[ind].wms[i].objLayer[j].layer_metadataurl; //layerMetadataUrl = mb_mapObj[ind].wms[i].objLayer[j].layer_metadataurl; wmsVersion = mb_mapObj[ind].wms[i].wms_version; wmsTitle = mb_mapObj[ind].wms[i].wms_title; wmsOnlineResource = mb_mapObj[ind].wms[i].wms_getmap; //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"; } //layerFormat wmc += "\t\t\t<FormatList>\n"; for (var k = 0; k < 1; k++){ if (k == 0){ layerFormat_current = 1; // To do: insert proper data } else{ layerFormat_current = 0; // To do: insert proper data } layerFormat = mb_mapObj[ind].wms[i].gui_wms_mapformat; wmc += "\t\t\t\t<Format "; if (layerFormat_current == 1){ wmc += "current = \"1\""; } 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 //layerStyle_legendUrl = stripAmpersand(mb_mapObj[ind].wms[i].wms_getlegendurl); 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"; //document.sendData.target = "_blank"; document.sendData.action = "../javascripts/mod_insertWmcIntoDb.php"; document.sendData.data.value = user + "____" + generalTitle + "____" + wmc + "____" + id + "____" + title_alert; document.sendData.submit(); } return id; } function mod_savewmc_init(obj){ //document.getElementById("savewmc").src = mod_zoom1_img_over.src; //obj.onmouseover = new Function("mod_zoomIn1_over()"); //obj.onmouseout = new Function("mod_zoomIn1_out()"); } function mod_zoomIn1_over(){ //document.getElementById("zoomIn1").src = mod_zoom1_img_over.src; } function mod_zoomIn1_out(){ //document.getElementById("zoomIn1").src = mod_zoom1_img.src; }