util.js 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153
  1. import VectorSource from 'ol/source/Vector.js';
  2. import WKT from 'ol/format/WKT.js';
  3. import Feature from 'ol/Feature.js';
  4. import VectorLayer from 'ol/layer/Vector.js';
  5. import Draw from "ol/interaction/Draw";
  6. import Text from "ol/style/Text";
  7. import Icon from "ol/style/Icon";
  8. import {Circle, Fill, Stroke, Style} from 'ol/style.js';
  9. export function getRadius(zoom){
  10. if(zoom >= 20){
  11. return 120;
  12. }
  13. if(zoom >= 19){
  14. return 70;
  15. }
  16. if(zoom >= 18){
  17. return 30;
  18. }
  19. if(zoom >= 17){
  20. return 15;
  21. }
  22. return 10;
  23. }
  24. export function getScale(zoom){
  25. if(zoom >= 20){
  26. return 0.8;
  27. }
  28. if(zoom >= 19){
  29. return 0.4;
  30. }
  31. if(zoom >= 18){
  32. return 0.2;
  33. }
  34. if(zoom >= 17){
  35. return 0.1;
  36. }
  37. return 0.1;
  38. }
  39. export function isShow(zoom,id){
  40. if(zoom > 18){
  41. return true;
  42. }
  43. if(zoom >= 18){
  44. return mo(id, 4)
  45. }
  46. if(zoom >= 17){
  47. return mo(id, 5)
  48. }
  49. return mo(id, 5)
  50. }
  51. export function mo(id,midu){
  52. return id % midu == 0
  53. }
  54. export const colors = ["#9EFE0C","#FEC30C","#FE760C","#FE0B0C","#0DCAFE","#A80BFF","#E4FE0C","#1A0BFF"];
  55. export const imgs = ["point6.png","point1.png","point2.png","point3.png","point4.png","point5.png","point6.png","point7.png","point8.png"]
  56. export const pz = ["未知","白糖罂","桂味","井岗红糯","糯米糍","岭丰糯","进奉","冰荔","妃子笑"]
  57. export function getIndex(name){
  58. let i = 0;
  59. for(let item of pz){
  60. if(name === item){
  61. return i;
  62. }
  63. i++;
  64. }
  65. }
  66. /**
  67. *
  68. * @param data
  69. * @param geomField 形状的字段
  70. * @param sign 标识
  71. * @returns {Feature<{geometry: any}>}
  72. */
  73. export const newPoint = (data, geomField, sign)=>{
  74. let point = new WKT().readGeometry(data[geomField])
  75. let feature = new Feature({
  76. geometry: point
  77. });
  78. feature.setId(data.id)
  79. feature.set("nodeType",sign)
  80. for(let key in data){
  81. if(key != geomField && data[key]){
  82. feature.set(key,data[key])
  83. }
  84. }
  85. return feature;
  86. }
  87. export const newGeomPoint = (data)=>{
  88. let point = new WKT().readGeometry(data["geom"])
  89. let feature = new Feature({
  90. geometry: point
  91. });
  92. feature.setId(data.id)
  93. feature.set("nodeType","tree")
  94. for(let key in data){
  95. if(key != "geom" && data[key]){
  96. feature.set(key,data[key])
  97. }
  98. }
  99. return feature;
  100. }
  101. export const newPolymerFeature = (data)=>{
  102. let geom = new WKT().readGeometry(data["wkt"])
  103. let feature = new Feature({
  104. geometry: geom
  105. });
  106. feature.set("nodeType","polymer");
  107. feature.setId(data.id)
  108. for(let key in data){
  109. if(key != "wkt"){
  110. feature.set(key,data[key])
  111. }
  112. }
  113. return feature;
  114. }
  115. export const newAreaFeature = (data)=>{
  116. let geom = new WKT().readGeometry(data["geom"])
  117. let feature = new Feature({
  118. geometry: geom
  119. });
  120. feature.set("nodeType","area");
  121. feature.setId(data.id)
  122. for(let key in data){
  123. if(key != "geom"){
  124. feature.set(key,data[key])
  125. }
  126. }
  127. return feature;
  128. }
  129. export const pointToFormat = (pointString)=> {
  130. let geom = new WKT().readGeometry(pointString)
  131. const longitude = geom.getCoordinates()[0];
  132. const latitude = geom.getCoordinates()[1];
  133. // 转换为度的格式
  134. const formattedLongitude = `${longitude.toFixed(0)}°E`;
  135. const formattedLatitude = `${latitude.toFixed(0)}°N`;
  136. const result = `${formattedLongitude},${formattedLatitude}`;
  137. console.log(result); // 输出: 111.011490207°E,21.7739355047°N
  138. return result
  139. }