// --------------------------------------------------------------------------------------------------------------- // --- 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 = "
"; if (useCheckboxForHighlighting) { str += " | ";
}
str += " " + mb_wfs_fetch.get(i).e.getValue(k)+ " |