randomMarkers.js 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. export function createRandomMarkers(switchLatLng=false){
  2. let latStart = 4833125
  3. let lngStart = 1430784
  4. let markersFromTo = []
  5. let markers = []
  6. for (let i=0; i<this.state.noOfMarkers; i++) {
  7. let latRandom = Math.floor((Math.random() * 1063))
  8. let latFrom = (latStart + latRandom) / 100000
  9. latRandom = Math.floor((Math.random() * 1063))
  10. let latTo = (latStart + latRandom) / 100000
  11. let lngRandom = Math.floor((Math.random() * 2533))
  12. let lngFrom = (lngStart + lngRandom) / 100000
  13. lngRandom = Math.floor((Math.random() * 2533))
  14. let lngTo = (lngStart + lngRandom) / 100000
  15. if(switchLatLng){
  16. markersFromTo.push({from: [lngFrom, latFrom], to: [lngTo, latTo]})
  17. markers.push([lngFrom, latFrom])
  18. }else{
  19. markersFromTo.push({from: [latFrom, lngFrom], to: [latTo, lngTo]})
  20. markers.push([latFrom, lngFrom])
  21. }
  22. }
  23. this.setState({markersFromTo: markersFromTo})
  24. this.setState({markers: markers})
  25. }
  26. export function calcMarkerPosition(){
  27. let noOfSteps = this.state.noOfSteps
  28. let currStep = this.state.currStep
  29. if (parseInt(currStep/noOfSteps)%2 === 0){
  30. currStep = currStep % noOfSteps
  31. } else{
  32. currStep = noOfSteps - (currStep % noOfSteps)
  33. }
  34. let markers = []
  35. for (let marker of this.state.markersFromTo){
  36. let latStart = marker.from[0]
  37. let lngStart = marker.from[1]
  38. let latEnd = marker.to[0]
  39. let lngEnd = marker.to[1]
  40. // markers.push([latStart, lngStart])
  41. // markers.push([latEnd, lngEnd])
  42. let latDiff = latEnd - latStart
  43. let lngDiff = lngEnd - lngStart
  44. let lat = latDiff / noOfSteps * currStep + latStart
  45. let lng = lngDiff / noOfSteps * currStep + lngStart
  46. markers.push([lat, lng])
  47. }
  48. this.setState({markers: markers})
  49. }
  50. export function changeSwitch(event){
  51. if(this.state.moveMarkers){
  52. clearInterval(this.timer);
  53. }else{
  54. this.timer = setInterval(() => {
  55. this.setState({currStep: this.state.currStep + 1});
  56. this.calcMarkerPosition()
  57. }, this.state.interval);
  58. }
  59. this.setState({moveMarkers: !this.state.moveMarkers})
  60. }
  61. export function setNoOfMarkers(event, switchLatLng=false){
  62. this.setState(
  63. {noOfMarkers: event.target.value, currStep: 0},
  64. () => {
  65. this.measurementsDiv.current.innerHTML = ""
  66. this.createRandomMarkers(switchLatLng)
  67. }
  68. )
  69. }