// --------------------------------------------------------------------------------------------------------------- // --- usemap (begin) -------------------------------------------------------------------------------------------- function mod_usemap(wfs_name) { if (wfs_name == "") { usemap = ""; } var ind = getMapObjIndexByName(mb_wfs_targets[0]); var myImg = window.frames[mb_wfs_targets[0]].document.getElementById("um_img").style; myImg.width = mb_mapObj[ind].width; myImg.height = mb_mapObj[ind].height; for (var i = 0 ; i < mb_wfs_fetch.count() ; i ++) { if (mb_wfs_fetch.get(i).wfs_conf == wfs_name || wfs_name == "") { if (mb_wfs_fetch.get(i).geomType == geomType.polygon) { usemap += mod_usemap_polygon(i); } else if (mb_wfs_fetch.get(i).geomType == geomType.point) { usemap += mod_usemap_circle(i); } else if (mb_wfs_fetch.get(i).geomType == geomType.line) { usemap += mod_usemap_line(i); } } } writeUsemap(usemap); } function mod_usemap_circle(ind){ var str = ""; var coord = ""; var title = ""; for (var i = 0 ; i < mb_wfs_fetch.get(ind).e.count(); i++) { if (i>0) title += " "; title += mb_wfs_fetch.get(ind).e.getName(i) + ": " + mb_wfs_fetch.get(ind).e.getValue(i); } for (var i = 0 ; i < mb_wfs_fetch.get(ind).count() ; i ++) { var p = mb_wfs_fetch.getPoint(ind, i, 0); var pos = realToMap(mb_wfs_targets[0],p); coord += pos.x + ", " + pos.y; str += ""; } return str; } function mod_usemap_line_calculate (aGeometry, j, orientation, cnt) { var coord = ""; var p1 = realToMap(mb_wfs_targets[0],aGeometry.get(j)); var p2 = realToMap(mb_wfs_targets[0],aGeometry.get(j+orientation)); var vec = p2.minus(p1); if (vec.x != 0 || vec.y != 0) { var n_vec; if (vec.x != 0) { if (vec.x > 0) n_vec = new Point((-vec.y)/vec.x, -1); else n_vec = new Point(vec.y/vec.x, 1); } else { if (vec.y > 0) n_vec = new Point(1,0); else n_vec = new Point(-1,0); } n_vec = n_vec.times(mod_usemap_line_tolerance).dividedBy(n_vec.dist(new Point(0,0))) lp = new Point(p1.x + n_vec.x, p1.y - n_vec.y); if (cnt > 0) coord += ", "; coord += parseInt(lp.x) + ", " + parseInt(lp.y); coord += ", " + parseInt(lp.x+vec.x) + ", " + parseInt(lp.y+vec.y); } return coord; } function mod_usemap_line(ind){ var str = ""; var title = ""; for (var i = 0 ; i < mb_wfs_fetch.get(ind).e.count(); i++) { if (i>0) title += " "; title += mb_wfs_fetch.get(ind).e.getName(i) + ": " + mb_wfs_fetch.get(ind).e.getValue(i); } for (var i = 0 ; i < mb_wfs_fetch.get(ind).count() ; i ++) { var coord = ""; var cnt = 0; for (var j = 0 ; j < mb_wfs_fetch.getGeometry(ind,i).count() - 1 ; j ++) { var result = mod_usemap_line_calculate(mb_wfs_fetch.getGeometry(ind,i), j, 1, cnt); if (result != "") { coord += result; cnt++; } } for (var j = (mb_wfs_fetch.getGeometry(ind,i).count() - 1) ; j > 0 ; j--) { var result = mod_usemap_line_calculate(mb_wfs_fetch.getGeometry(ind,i), j, -1, cnt); if (result != "") { coord += result; cnt++; } } if (coord != "") { str += ""; } else { //display circle var pos = realToMap(mb_wfs_targets[0],mb_wfs_fetch.getPoint(ind,i,0)); coord += pos.x + ", " + pos.y; str += ""; } } return str; } function mod_usemap_polygon(ind){ var str = ""; var coord = ""; var title = ""; for (var i = 0 ; i < mb_wfs_fetch.get(ind).e.count(); i++) { if (i>0) title += " "; title += mb_wfs_fetch.get(ind).e.getName(i) + ": " + mb_wfs_fetch.get(ind).e.getValue(i); } for (var i = 0 ; i < mb_wfs_fetch.get(ind).count() ; i ++) { var pos = realToMap(mb_wfs_targets[0],mb_wfs_fetch.getPoint(ind, i, 0)); coord += pos.x + ", " + pos.y; for (var j = 1 ; j < mb_wfs_fetch.getGeometry(ind,i).count() ; j ++) { pos = realToMap(mb_wfs_targets[0],mb_wfs_fetch.getPoint(ind, i, j)); coord += ", " + pos.x + ", " + pos.y; } str += ""; } return str; } function writeUsemap(str) { writeTag(mb_wfs_targets[0], 'um', str); } // --- usemap (end) ---------------------------------------------------------------------------------------------- // --------------------------------------------------------------------------------------------------------------- var highlight_tag_id = "wfs_highlight_tag"; var mb_wfs_fetched = []; var mb_wfs_objwin = null; var mb_wfs_objwin_left = 800; var mb_wfs_objwin_top = 200; var mb_wfs_objwin_width = 200; var mb_wfs_objwin_height = 200; var mb_wfs_targetString = ""; var mb_wfs_targets = mb_wfs_targetString.split(","); var mb_wfs_fillColor = "#ff0000"; var usemap = ""; var mod_usemap_radius = 10; var mod_usemap_line_tolerance = 5; var useCheckboxForHighlighting = false; var mb_wfs_fetch = new GeometryArray(); var highlight; try {if(generalHighlightZIndex){}}catch(e) {generalHighlightZIndex = 90;} try {if(generalHighlightLineWidth){}}catch(e) {generalHighlightLineWidth = 2;} try {if(useUsemap){}}catch(e) {useUsemap = 0;} mb_registerInitFunctions('initHighlight()'); function initHighlight() { var styleObj = {"position":"absolute", "top":"0px", "left":"0px", "z-index":generalHighlightZIndex}; highlight = new Highlight(mb_wfs_targets, highlight_tag_id, styleObj, generalHighlightLineWidth); } try {if(displayWfsResultList){}}catch(e) {displayWfsResultList = 0;}; if (displayWfsResultList == 1) { //mb_registerWfsReadSubFunctions(function(geom){mb_wfs_listMember(geom)}); } if (parseInt(useUsemap) == 1) { mb_registerSubFunctions('mod_usemap("")'); } if (useCheckboxForHighlighting) { eventInit.register(function() { mb_registerSubFunctions('highlight.paint()'); }); } /* if (useExtentIsSet()) { mb_registerSubFunctions("mb_setwfsrequest_extent()"); } function mb_setwfsrequest_extent() { if (useExtentIsSet()) { var ind = getMapObjIndexByName(mb_wfs_targets[0]); var pos_a = makeClickPos2RealWorldPos(mb_wfs_targets[0],0,0); var pos_b = makeClickPos2RealWorldPos(mb_wfs_targets[0],mb_mapObj[ind].width,mb_mapObj[ind].height); var x = []; var y = []; x[0] = pos_a[0]; x[1] = pos_b[0]; y[0] = pos_a[1]; y[1] = pos_b[1]; mb_setwfsrequest(mb_wfs_targets[0],'rectangle',x,y); } } */ function mb_wfs_listMember(geomArray){ mb_wfs_fetch.union(geomArray); var wfs_conf = get_complete_wfs_conf(); var str = ""; for(var i=0; i 0){ var k = mb_wfs_fetch.get(i).e.getElementIndexByName(t['element'][j]['element_name']); //alert(k); if(k != -1){ str += ""; } } } } str += "
"; if (useCheckboxForHighlighting) { str += ""; } str += "
"; mb_wfs_objwin.innerHTML = str; // if (parseInt(useUsemap) == 1) mod_usemap(wfs_name); } function mb_wfs_reset(){ mb_wfs_fetch = new parent.GeometryArray(); usemap = ""; if(mb_wfs_objwin == null){ var iframe=document.createElement('div'); iframe.setAttribute("style","position:absolute;left:"+mb_wfs_objwin_left+"px;top:"+mb_wfs_objwin_top+"px;width:"+mb_wfs_objwin_width+"px;height:"+mb_wfs_objwin_height+"px"); mb_wfs_objwin = document.body.appendChild(iframe); mb_wfs_objwin.id = "mb_wfs_objwin"; mb_wfs_objwin.name = "mb_wfs_objwin"; mb_wfs_objwin.style.position = 'absolute'; mb_wfs_objwin.style.left = mb_wfs_objwin_left+"px"; mb_wfs_objwin.style.top = mb_wfs_objwin_top+"px"; mb_wfs_objwin.style.width = mb_wfs_objwin_width+"px"; mb_wfs_objwin.style.height = mb_wfs_objwin_height+"px"; } for(var i=0; i'; for(var i=0; i'; } } for(var j=0; j'; if(d.get(m).geomType == geomType.point){ str += ''; str += ''; str += d.getPoint(m,0,0).x + "," + d.getPoint(m,0,0).y; str += ''; str += ''; } if(d.get(m).geomType == geomType.line){ str += ''; str += ''; for(var k=0; k0) str += " "; str += d.getPoint(m,0,k).x + "," + d.getPoint(m,0,k).y; } str += ''; str += ''; } if(d.get(m).geomType == geomType.polygon){ str += ''; for (var k = 0; k < d.get(m).count(); k++) { str += ''; for(var l = 0; l < d.getGeometry(m, k).count(); l++){ if (l > 0) { str += " "; } str += d.getPoint(m,k,l).x + "," + d.getPoint(m,k,l).y; } str += ''; if (d.getGeometry(m, k).innerRings) { for(var ii = 0; ii < d.getGeometry(m, k).innerRings.count(); ii++){ str += ''; for(var l = 0; l < d.getGeometry(m, k).innerRings.get(ii).count(); l++){ if (l > 0) { str += " "; } str += d.getPoint(m,k,ii,l).x + "," + d.getPoint(m,k,ii,l).y; } str += ''; } } str += ''; } str += ''; } str += ''; } // // --------------------------------------- UPDATE ------------------------------------------------ // else if (type == "update") { str += ''; for(var i=0; i'; str += ''; str += ''; } } for(var j=0; j'; if(d.get(m).geomType == geomType.point){ str += ''; str += d.getPoint(m,0,0).x + "," + d.getPoint(m,0,0).y; str += ''; } if(d.get(m).geomType == geomType.line){ str += ''; str += ''; for(var k=0; k0) str += " "; str += d.getPoint(m,0,k).x + "," + d.getPoint(m,0,k).y; } str += ''; str += ''; } if(d.get(m).geomType == geomType.polygon){ str += ''; for (var l = 0; l < d.get(m).count(); l++) { str += ''; for(var k=0; k0) str += " "; str += d.getPoint(m,l,k).x + "," + d.getPoint(m,l,k).y; } str += ''; if (d.getGeometry(m, l).innerRings) { for(var ii = 0; ii < d.getGeometry(m, l).innerRings.count(); ii++){ str += ''; for(var p = 0; p < d.getGeometry(m, l).innerRings.get(ii).count(); p++){ if (p > 0) { str += " "; } str += d.getPoint(m,l,ii,p).x + "," + d.getPoint(m,l,ii,p).y; } str += ''; } } str += ''; } } str += ''; str += ''; str += ''; str += ''; } // // --------------------------------------- DELETE ------------------------------------------------ // else if (type == "delete") { str += ''; for(var j=0; j'; str += ''; } str += ''; return str; }