local.js 5.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215
  1. var map;
  2. /**
  3. * 创建地图
  4. * @param latlng
  5. */
  6. function createMap(id, lnglat) {
  7. var map_json = {
  8. zoom: 14
  9. }
  10. if(lnglat["lat"] != ''|| lnglat["lng"] != '' ){
  11. map_json["center"] = [lnglat["lng"], lnglat["lat"]]//初始化地图中心点}
  12. }
  13. map = new AMap.Map(id, map_json);
  14. }
  15. var overlayers_array = {};
  16. var editor_array = {};
  17. /**
  18. * 创建一个圆, 并且给与编辑权限
  19. */
  20. function createCircle(key, color, border_color, path_param){
  21. if(path_param == undefined){
  22. var center = map.getCenter(); //获取当前地图中心位置
  23. var radius = 1000;
  24. }else{
  25. var center = [path_param.center.longitude,path_param.center.latitude]
  26. var radius = path_param.radius;
  27. }
  28. var circle = new AMap.Circle({
  29. center: center,
  30. radius: radius, //半径
  31. borderWeight: 3,
  32. strokeColor: border_color,
  33. strokeOpacity: 1,
  34. strokeWeight: 6,
  35. strokeOpacity: 0.2,
  36. fillOpacity: 0.4,
  37. strokeStyle: 'solid',
  38. strokeDasharray: [10, 10],
  39. // 线样式还支持 'dashed'
  40. fillColor: color,
  41. zIndex: 50,
  42. })
  43. circle.setMap(map);
  44. // 缩放地图到合适的视野级别
  45. map.setFitView(getArray(overlayers_array));
  46. overlayers_array[key] = circle;
  47. var circleEditor = new AMap.CircleEditor(map, circle)
  48. editor_array[key] = circleEditor;
  49. circle.on('click', function(){
  50. $.each(editor_array, function(i, item){
  51. item.close();
  52. });
  53. circleEditor.open();
  54. });
  55. circleEditor.on('move', function(event) {
  56. // log.info('触发事件:move')
  57. })
  58. circleEditor.on('adjust', function(event) {
  59. // log.info('触发事件:adjust')
  60. })
  61. circleEditor.on('end', function(event) {
  62. // log.info('触发事件: end')
  63. // event.target 即为编辑后的圆形对象
  64. })
  65. }
  66. /**
  67. * 创建多边形
  68. * @param key
  69. */
  70. function createPolygon(key, color, border_color, path_param){
  71. var center = map.getCenter();
  72. var lat = center.lat;
  73. var lng = center.lng;
  74. if(path_param == undefined){
  75. var path = [
  76. [lng+0.01, lat+0.01],
  77. [lng+0.01, lat-0.01],
  78. [lng-0.01, lat-0.01],
  79. [lng-0.01, lat+0.01]
  80. ]
  81. }else{
  82. var path = [
  83. ]
  84. $.each(path_param, function(i, item){
  85. path.push([item.longitude,item.latitude]);
  86. });
  87. }
  88. var polygon = new AMap.Polygon({
  89. path: path,
  90. strokeColor: border_color,
  91. strokeWeight: 6,
  92. strokeOpacity: 0.2,
  93. fillOpacity: 0.4,
  94. fillColor: color,
  95. zIndex: 50,
  96. })
  97. map.add(polygon)
  98. overlayers_array[key] = polygon;
  99. // 缩放地图到合适的视野级别
  100. map.setFitView(getArray(overlayers_array));
  101. var polyEditor = new AMap.PolyEditor(map, polygon)
  102. editor_array[key] = polyEditor;
  103. polygon.on('click', function(){
  104. $.each(editor_array, function(i, item){
  105. item.close();
  106. });
  107. polyEditor.open();
  108. });
  109. polyEditor.on('addnode', function(event) {
  110. // log.info('触发事件:addnode')
  111. })
  112. polyEditor.on('adjust', function(event) {
  113. // log.info('触发事件:adjust')
  114. })
  115. polyEditor.on('removenode', function(event) {
  116. // log.info('触发事件:removenode')
  117. })
  118. polyEditor.on('end', function(event) {
  119. // log.info('触发事件: end')
  120. // event.target 即为编辑后的多边形对象
  121. })
  122. }
  123. /**
  124. * 移除覆盖物
  125. * @param overlayers
  126. */
  127. function removeOverlayers(key){
  128. var overlayers_item = overlayers_array[key];
  129. var editor_item = editor_array[key];
  130. editor_item.close();//关闭覆盖物编辑
  131. map.remove(overlayers_item);//删除覆盖物
  132. }
  133. /**
  134. * 给与覆盖物焦点
  135. */
  136. function foursOverlayers(key){
  137. var editor_item = editor_array[key];
  138. foursOverlayersAction(editor_item);
  139. }
  140. function foursOverlayersAction(obj){
  141. $.each(editor_array, function(i, item){
  142. item.close();
  143. });
  144. obj.open();
  145. }
  146. /**
  147. * 获取覆盖物实例
  148. * @param key
  149. * @returns {*}
  150. */
  151. function getOverlayersPath(key, type){
  152. var overlayers_item = overlayers_array[key];
  153. switch(type){
  154. //多边形
  155. case 'polygon':{
  156. var return_json = [];
  157. var path = overlayers_item.getPath();
  158. $.each(path, function(i, item){
  159. var item_json = {longitude:item.lng,latitude:item.lat};
  160. return_json.push(item_json);
  161. });
  162. return return_json;
  163. break;
  164. }
  165. //圆
  166. case 'circle':{
  167. var return_json = {};
  168. var center = overlayers_item.getCenter();
  169. return_json['center'] = {longitude:center.lng,latitude:center.lat};
  170. return_json['radius'] = overlayers_item.getRadius();
  171. return return_json;
  172. break;
  173. }
  174. }
  175. }
  176. function getArray(array){
  177. var temp_array = [];
  178. $.each(array, function(i, item){
  179. temp_array.push(item);
  180. });
  181. return temp_array;
  182. }