Advertisement
Guest User

Untitled

a guest
Oct 19th, 2018
66
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.51 KB | None | 0 0
  1.  
  2. function setupMapData(array){ //input: [float latitude, float longitude, description]
  3. var data = [{
  4.  
  5. 'type': "scattermapbox",
  6. 'mode': "markers",
  7. 'marker': {"size": 5, "color": "rgb(255,0,0)"},
  8.  
  9. }];
  10.  
  11. var lat = [];
  12. var lon = [];
  13. var text = [];
  14. //assigns keys to lists
  15. data['lat'] = lat;
  16. data['lon'] = lon;
  17. data['text'] = text;
  18. //loops throught the input array and pushes the indexed number to list
  19. for (var location of array){
  20. for (var value of location){
  21. if (value == location[0]){
  22. lat.push(value);
  23. } else if (value == location[1]){
  24. lon.push(value);
  25. } else {
  26. text.push(value);
  27. }
  28. }
  29. }
  30. //returns dictionary for function
  31. return data;
  32. }
  33.  
  34.  
  35. // console.log(setupMapData([[35.6763257, 139.6993177, "Meiji Shrine"],[35.7101456, 139.8105814, "Skytree"],[35.6950532, 139.7017945, "Godzilla Head"]]))
  36.  
  37.  
  38. function findCenter(array){
  39. var lat = 0;
  40. var latCount = 0;
  41. var lon = 0;
  42. var lonCount = 0;
  43.  
  44. for (var location of array){
  45. for (var value of location){
  46. if (value == location[0]){
  47. latCount += 1;
  48. lat += value;
  49. } else if (value == location[1]){
  50. lonCount += 1
  51. lon += value
  52. }
  53. }
  54. }
  55. return [(lat / latCount), (lon / lonCount)];
  56. }
  57.  
  58.  
  59. // console.log(findCenter([[35.6763257, 139.6993177, "Meiji Shrine"],[35.7101456, 139.8105814, "Skytree"],[35.6950532, 139.7017945, "Godzilla Head"]]))
  60.  
  61.  
  62. function setupMapLayout(array){
  63. center = findCenter(array)
  64. var layout = {
  65. "mapbox": [{
  66. "style": "satellite-streets",
  67. "zoom": 11,
  68. "center": center
  69. }]
  70. }
  71. return layout
  72. }
  73.  
  74.  
  75. // console.log(setupMapLayout([[35.6763257, 139.6993177, "Meiji Shrine"],[35.7101456, 139.8105814, "Skytree"],[35.6950532, 139.7017945, "Godzilla Head"]]))
  76.  
  77.  
  78. function getMapParams(jsonString){
  79. var array = JSON.parse(jsonString)
  80. input = {"data": setupMapData(array), "layout": setupMapLayout(array)}
  81. return input
  82. }
  83.  
  84.  
  85. function loadMap(){
  86. Plotly.setPlotConfig({ mapboxAccessToken: 'pk.eyJ1IjoibW5zaGlzaGsiLCJhIjoiY2puZHM4aXp6MHN3eTNxbzA5c202N2M4aSJ9.nn2izwz93v_Qroy0D-_ZOA' });
  87. var mapParams = getMapParams(JSON.stringify([[35.6763257, 139.6993177, "Meiji Shrine"],[35.7101456, 139.8105814, "Skytree"],[35.6950532, 139.7017945, "Godzilla Head"]]));
  88. Plotly.plot('map', mapParams.data, mapParams.layout);
  89. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement