fence.js 5.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188
  1. (function () {
  2. var page = {
  3. init: function ($page, param) {
  4. // //地图初始化
  5. var map = new AMap.Map("fence-map", {
  6. center: [113.955439, 22.542956],//地图中心点
  7. zoom: 12 //地图显示的缩放级别
  8. });
  9. // // var polygonFence = new AMap.Polygon({
  10. // // strokeColor: "#FF33FF",
  11. // // strokeWeight: 6,
  12. // // strokeOpacity: 0.2,
  13. // // fillOpacity: 0.4,
  14. // // fillColor: '#1791fc',
  15. // // zIndex: 50,
  16. // // })
  17. var fenceInfo = param.fenceInfo;
  18. var defaultPt = param.defaultLocation;
  19. console.log(param);
  20. var circleFence = new AMap.Circle({
  21. center: defaultPt,
  22. radius: fenceInfo.data.radius,
  23. strokeOpacity: 0,
  24. strokeWeight: 0,
  25. strokeOpacity: 0.2,
  26. fillOpacity: 0.3,
  27. fillColor : '#1791fc',
  28. zIndex: 50,
  29. });
  30. circleFence.setMap(map)
  31. map.setFitView(circleFence);
  32. // displayFence(fenceInfo);
  33. $page.find('#switch1').lrswitch();
  34. var rangeObj = $('#fence-radius');
  35. $('#display-radius')[0].innerHTML = rangeObj[0].value;
  36. //获取要设置的半径
  37. function getSetRadius(){
  38. return rangeObj[0].value;
  39. }
  40. $('#fence-radius').on('input',function(){
  41. $('#display-radius')[0].innerHTML = this.value;
  42. var radius = getSetRadius();
  43. circleFence.setRadius(radius);
  44. console.log(circleFence.getRadius( ));
  45. setFenceView(circleFence);
  46. });
  47. map.on('moveend', function(){
  48. var center = map.getCenter();
  49. circleFence.setCenter(center);
  50. });
  51. function setFenceCenter(center){
  52. circleFence.setCenter(center);
  53. }
  54. function getPresentCenter(map){
  55. return map.getCenter();
  56. }
  57. //围栏自适应地图等级
  58. function setFenceView(fence){
  59. map.setFitView([ fence ]);
  60. };
  61. //显示围栏(初始)
  62. // function displayFence(fenceInfo){
  63. // if(!fenceInfo){
  64. // circleFence.setCenter(defaultPt);
  65. // var radius = getSetRadius();
  66. // circleFence.setRadius(radius);
  67. // // circleFence.setMap(map);
  68. // map.setFitView([ circleFence ]);
  69. // return;
  70. // }
  71. // var fence = fenceInfo;
  72. // console.log(fence);
  73. // if(fence.type == 'circle'){
  74. // var pt = new AMap.LngLat(fence.data.center.lng, fence.data.center.lat);
  75. // // circleFence.setCenter(pt);
  76. // circleFence.setRadius(fence.data.radius);
  77. // // circleFence.setMap(map);
  78. // map.setFitView([ circleFence ]);
  79. // return;
  80. // }
  81. // // if(fence.type == 'polygon'){
  82. // // var pts = [];
  83. // // var paths = fence.data.vertex;
  84. // // paths.forEach(v => {
  85. // // pts.push([v.lng, v.lat]);
  86. // // });
  87. // // polygonFence.setPath(pts);
  88. // // polygonFence.setMap(map);
  89. // // map.setFitView([ polygonFence ]);
  90. // // return;
  91. // // }
  92. // }
  93. // //post围栏信息
  94. // function postFence(data){
  95. // var post_data = data;
  96. // learun.httppost(config.webapi+'?s=api/save_fence_info',post_data,function(res){
  97. // if(!res.success){
  98. // learun.layer.toast(res.message);
  99. // return;
  100. // }
  101. // learun.layer.toast('保存成功');
  102. // });
  103. // }
  104. // var circle = new AMap.Circle({
  105. // center: [116.433322, 39.900255],
  106. // radius: 1000, //半径
  107. // borderWeight: 3,
  108. // strokeColor: "#FF33FF",
  109. // strokeOpacity: 1,
  110. // strokeWeight: 6,
  111. // strokeOpacity: 0.2,
  112. // fillOpacity: 0.4,
  113. // strokeStyle: 'dashed',
  114. // strokeDasharray: [10, 10],
  115. // // 线样式还支持 'dashed'
  116. // fillColor: '#1791fc',
  117. // zIndex: 50,
  118. // })
  119. // circle.setMap(map)
  120. // // 缩放地图到合适的视野级别
  121. // map.setFitView([ circle ])
  122. // map.on('moveend', function(){
  123. // var center = map.getCenter();
  124. // circle.setCenter(center);
  125. // });
  126. // $('#fence-radius').on('input',function(){
  127. // $('#display-radius')[0].innerHTML = this.value;
  128. // circle.setRadius(this.value);
  129. // map.setFitView([circle]);
  130. // });
  131. }
  132. };
  133. return page;
  134. })();