Advertisement
Guest User

map.js

a guest
Apr 18th, 2019
149
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.62 KB | None | 0 0
  1. function loadMap() {
  2. Plotly.setPlotConfig({mapboxAccessToken: 'pk.eyJ1IjoiYXJlaWNoZXIiLCJhIjoiY2p1ZnIycnVpMGg4MjN5cnI3b3NscHQ3OSJ9.5f5k3erqpH8Nj16icQl6OQ'});
  3. let xhttp = new XMLHttpRequest();
  4. xhttp.onreadystatechange = function(){
  5. if (this.readyState === 4 && this.status === 200){
  6. let mapParams = getMapParams(JSON.parse(this.response));
  7. Plotly.plot('map', mapParams.data, mapParams.layout); }
  8. };
  9. xhttp.open("GET", "/art");
  10. xhttp.send();
  11. }
  12.  
  13. function setupMapData(master){
  14. m = JSON.parse(master)
  15. var La = []
  16. var Lo = []
  17. var Ty = []
  18. for (var i in m) {
  19. l = m[i]
  20. La.push(Number(l[0]))
  21. Lo.push(Number(l[1]))
  22. Ty.push(l[2])
  23. }
  24.  
  25. var data = [{
  26. type:'scattermapbox',
  27. lat:La,
  28. lon:Lo,
  29. mode:'markers',
  30. marker: {
  31. size:5
  32. color:"rgb (255, 0, 0)"
  33. },
  34. text:Ty
  35. }]
  36. return data;
  37. }
  38.  
  39. function findMapCenter(master) {
  40. m = JSON.parse(master)
  41. var La = []
  42. var Lo = []
  43. var Ty = []
  44. for (var i in m) {
  45. l = m[i]
  46. La.push(Number(l[0]))
  47. Lo.push(Number(l[1]))
  48. Ty.push(l[2])
  49. var LatMin = Math.min(La)
  50. var LatMax = Math.max(La)
  51. var LonMin = Math.min(Lo)
  52. var LonMax = Math.max(Lo)
  53. LatAvg = (LatMin + LatMax) / 2
  54. LonAvg = (LonMin + LonMax) / 2
  55. return [LatAvg, LonAvg]
  56. }
  57. }
  58. setupMapLayout(master) {
  59. centP = findMapCenter(master)
  60. var layout = {
  61. mapbox: {
  62. style: "satellite-streets",
  63. zoom:11
  64. center: {
  65. lat:centP[0],
  66. lon:centP[1],
  67. }
  68. }
  69. }
  70. return layout
  71. }
  72.  
  73. function getMapParams(master) {
  74. return {"data": setupMapData(master), "layout": setupMapLayout(master)}
  75. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement