ServicesUtility.as 7.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226
  1. package com.xt.hb.utils
  2. {
  3. // import com.object.FieldObject;
  4. // import com.server.GeometryType;
  5. // import com.supermap.web.core.Feature;
  6. // import com.supermap.web.core.Point2D;
  7. // import com.supermap.web.core.geometry.GeoLine;
  8. // import com.supermap.web.core.geometry.GeoPoint;
  9. // import com.supermap.web.core.geometry.GeoRegion;
  10. // import com.supermap.web.core.geometry.Geometry;
  11. // import com.supermap.web.core.styles.PictureMarkerStyle;
  12. // import com.supermap.web.core.styles.PredefinedFillStyle;
  13. // import com.supermap.web.core.styles.PredefinedLineStyle;
  14. // import com.supermap.web.core.styles.PredefinedMarkerStyle;
  15. // import com.supermap.web.mapping.Map;
  16. // import com.supermap.web.mapping.TiledDynamicRESTLayer;
  17. import com.esri.ags.Graphic;
  18. import com.esri.ags.geometry.MapPoint;
  19. import com.xt.hb.ais.BwxqModel;
  20. import com.xt.hb.object.FieldObject;
  21. import flash.events.MouseEvent;
  22. import mx.containers.Grid;
  23. import mx.containers.GridItem;
  24. import mx.containers.GridRow;
  25. import mx.controls.Alert;
  26. import mx.controls.HRule;
  27. import mx.controls.Image;
  28. import mx.controls.LinkButton;
  29. import mx.core.FlexGlobals;
  30. import spark.components.Label;
  31. public class ServicesUtility
  32. {
  33. public function ServicesUtility()
  34. {
  35. }
  36. /**
  37. * 地图上的弹出框
  38. * layerId:点的是什么东西
  39. * obj:数据
  40. *
  41. * */
  42. public static function showFeatrueToMap(layerId:String,graphic:Graphic,
  43. obj:Object,e:MouseEvent=null, isUseMousePoint:Boolean=false):void
  44. {
  45. try
  46. {
  47. var grid:Grid = new Grid();
  48. grid.setStyle("verticalGap",0);
  49. grid.setStyle("backgroundColor","#FFFFFF");
  50. var row:GridRow;
  51. var rowItem:GridItem;
  52. var label:Label;
  53. var img:Image;
  54. row = new GridRow();
  55. row.height = 10;
  56. rowItem = new GridItem();
  57. rowItem.colSpan = 4;
  58. rowItem.setStyle("horizontalAlign","center");
  59. row.addChild(rowItem);
  60. grid.addChild(row);
  61. var fieldArr:Array = FieldsUtility.getShowFields(layerId);
  62. var hRule:HRule;
  63. var i:int=0;
  64. for each(var f:FieldObject in fieldArr)
  65. {
  66. row = new GridRow();
  67. //row.height = 24;
  68. //前面留白
  69. rowItem = new GridItem();
  70. rowItem.width = 8;
  71. row.addChild(rowItem);
  72. rowItem = new GridItem();
  73. rowItem.setStyle("verticalAlign","middle");
  74. rowItem.setStyle("horizontalAlign","left");
  75. rowItem.setStyle("fontFamily","宋体");
  76. rowItem.setStyle("fontSize","12");
  77. label = new Label();
  78. label.text = f.getLabel() + ":";
  79. label.setStyle("color","#4c4c4c");
  80. rowItem.addChild(label);
  81. row.addChild(rowItem);
  82. //留白
  83. rowItem = new GridItem();
  84. rowItem.width = 15;
  85. row.addChild(rowItem);
  86. rowItem = new GridItem();
  87. rowItem.setStyle("verticalAlign","middle");
  88. rowItem.setStyle("horizontalAlign","left");
  89. rowItem.setStyle("fontFamily","宋体");
  90. rowItem.setStyle("fontSize","12");
  91. label = new Label();
  92. if(null != obj && typeof(obj[f.getField()]) != "object") {
  93. label.text = obj[f.getField()];
  94. }
  95. label.maxWidth = 160;
  96. label.minHeight = 24;
  97. label.setStyle("verticalAlign","middle");
  98. label.maxDisplayedLines=0; // 默认多行显示,不截取
  99. rowItem.addChild(label);
  100. row.addChild(rowItem);
  101. //后面留白
  102. rowItem = new GridItem();
  103. rowItem.width = 10;
  104. row.addChild(rowItem);
  105. grid.addChild(row);
  106. row = new GridRow();
  107. row.height = 4;
  108. if( i < fieldArr.length)
  109. {
  110. i++;
  111. }
  112. // 如果泊位则加详情
  113. if(layerId==ConstUtil.L_ID_BW ) {
  114. var fieldObj:FieldObject = fieldArr[fieldArr.length-1] as FieldObject;
  115. if(f.getField() == fieldObj.getField()) {
  116. addBwxq(grid, obj);
  117. }
  118. }
  119. }
  120. row = new GridRow();
  121. row.height = 5;
  122. grid.addChild(row);
  123. FlexGlobals.topLevelApplication.map
  124. MapUtils.map.infoWindow.content = grid;
  125. MapUtils.map.infoWindow.label = FieldsUtility.getTitleByLayerID(layerId);
  126. setInfoWindowStyle();
  127. if(isUseMousePoint) {
  128. MapUtils.map.infoWindow.show(MapUtils.map.toMapFromStage(
  129. e.stageX + 5, e.stageY - 5));
  130. } else {
  131. if(graphic.geometry.type == "esriGeometryPoint") {
  132. MapUtils.map.infoWindow.show(new MapPoint(graphic.geometry["x"],graphic.geometry["y"],null));
  133. } else {
  134. MapUtils.map.infoWindow.show(graphic.geometry.extent.center);
  135. }
  136. }
  137. }
  138. catch(error:Error)
  139. {
  140. Alert.show("显示资源信息出错:"+error.message);
  141. }
  142. }
  143. public static function setInfoWindowStyle(type:String = null):void
  144. {
  145. MapUtils.map.infoWindow.closeButtonVisible = true;
  146. MapUtils.map.infoWindow.labelVisible = true;
  147. MapUtils.map.infoWindow.setStyle("backgroundColor","#e2ecf1");
  148. MapUtils.map.infoWindow.setStyle("borderColor","#999999");
  149. MapUtils.map.infoWindow.setStyle("border-style","solid");
  150. // map.infoWindow.infoPlacement = "";
  151. // "upperRight", "lowerRight", "upperLeft", "lowerLeft", "left", "right", "top", "bottom", and "center".
  152. // map.infoWindow.infoWindowLabel.setStyle('color', "#333");
  153. // map.infoWindow.infoWindowLabel.setStyle('fontFamily', "宋体");
  154. // map.infoWindow.infoWindowLabel.setStyle('fontSize', "14");
  155. // map.infoWindow.infoWindowLabel.setStyle('fontWeight', "bold");
  156. // map.infoWindow.infoWindowLabel.setStyle('verticalAlign', "middle");
  157. // map.infoWindow.infoWindowLabel.height = 25;
  158. // map.infoWindow.infoWindowLabel.maxWidth=250;
  159. // map.infoWindow.infoWindowLabel.top = 18;
  160. // map.infoWindow.infoWindowLabel.left = 8;
  161. /*map.infoWindow.maintainProjectionCenter=false;*/
  162. /*var img:Image=new Image();
  163. map.infoWindow.addElement();*/
  164. }
  165. /**
  166. * 增加泊位详情
  167. */
  168. private static function addBwxq(grid:Grid, obj:Object):void {
  169. var id:String = obj.GISID;
  170. // 定义link
  171. var link:LinkButton=new LinkButton();
  172. link.addEventListener(MouseEvent.CLICK,function (e:MouseEvent):void {ServicesUtility.bwInfo(e,id);});
  173. link.label="详 情>> ";
  174. // link.useHandCursor = true;
  175. // link..buttonMode = true;
  176. link.setStyle("color","#2F6EA1");
  177. // 将link插入表行
  178. var row:GridRow = new GridRow();
  179. var rowItem:GridItem = new GridItem();
  180. rowItem.colSpan = 5;
  181. rowItem.addChild(link);
  182. rowItem.setStyle("horizontalAlign","center");
  183. row.addChild(rowItem);
  184. grid.addChild(row);
  185. }
  186. /**
  187. * 增加泊位详情
  188. */
  189. private static function bwInfo(e:MouseEvent, id:String):void {
  190. if(null == id || typeof(id) == "undefined") {
  191. } else {
  192. var bwxqModel:BwxqModel = new BwxqModel;
  193. bwxqModel.bwid = id;
  194. var width:int = FlexGlobals.topLevelApplication.stage.stageWidth;
  195. var height:int = FlexGlobals.topLevelApplication.stage.stageHeight;
  196. var x:Number = width/2-230;
  197. var y:Number = height/2 - 165;
  198. CommonUtility.showTitleWindow(bwxqModel, false, x, y);
  199. }
  200. }
  201. }
  202. }