polectron

Untitled

Nov 24th, 2020
113
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.89 KB | None | 0 0
  1. var map;
  2.  
  3. class MapaKML {
  4. loadMap() {
  5. var script = document.createElement("script");
  6. script.type = "text/javascript";
  7. script.src = `http://maps.google.com/maps/api/js?key=AIzaSyDHCLIaV3Ej91HUbW0Bjb8vmFRPUSFYN8w&sensor=false&callback=MapMakerObj.pointAt`;
  8. document.body.appendChild(script);
  9. }
  10. }
  11.  
  12. class MapMaker {
  13. constructor() {
  14. this.lat = 43.3625;
  15. this.lon = -5.850278;
  16. }
  17. pointAt() {
  18. var center = { lat: this.lat, lng: this.lon };
  19. map = new google.maps.Map(document.getElementById('map'), {
  20. center: center,
  21. zoom: 16
  22. });
  23.  
  24.  
  25. }
  26. }
  27.  
  28. class Helper {
  29. readFiles(event) {
  30. var fileList = event.target.files;
  31.  
  32. for (var i = 0; i < fileList.length; i++) {
  33. this.loadAsText(fileList[i]);
  34. }
  35. }
  36.  
  37. loadAsText(theFile) {
  38. var reader = new FileReader();
  39.  
  40. reader.onload = function (loadedEvent) {
  41. // result contains loaded file.
  42. var parser = new DOMParser();
  43. var xmlDoc = parser.parseFromString(loadedEvent.target.result, "text/xml");
  44. var document = xmlDoc.getElementsByTagName("kml")[0].getElementsByTagName("Document")[0];
  45. var placeMarks = document.getElementsByTagName("Placemark");
  46.  
  47. for (var i = 0; i < placeMarks.length; i++) {
  48. //<Style id="yellowLineGreenPoly"><LineStyle><color>
  49. var color = document.getElementsByTagName("Style")[0].getElementsByTagName("LineStyle")[0].getElementsByTagName("color")[0].textContent;
  50. var width = document.getElementsByTagName("Style")[0].getElementsByTagName("LineStyle")[0].getElementsByTagName("width")[0].textContent;
  51. var coords = document.getElementsByTagName("coordinates")[0].textContent;
  52. var coordLines = coords.split("\n");
  53.  
  54. var flightPlanCoordinates = [];
  55.  
  56. coordLines.forEach(function (c) {
  57. var coordVals = c.split(",");
  58.  
  59. var marker = new google.maps.Marker({ position: { lat: parseFloat(coordVals[1]), lng: parseFloat(coordVals[0]) }, map: map, title: "" });
  60. flightPlanCoordinates.push({lat: parseFloat(coordVals[1]), lng: parseFloat(coordVals[0])});
  61. });
  62.  
  63. console.log(color);
  64.  
  65. var flightPath = new google.maps.Polyline({
  66. path: flightPlanCoordinates,
  67. geodesic: true,
  68. strokeColor: "#"+color,
  69. strokeOpacity: 1.0,
  70. strokeWeight: parseFloat(width)
  71. });
  72.  
  73. flightPath.setMap(map);
  74.  
  75. }
  76.  
  77. }
  78.  
  79. reader.readAsText(theFile);
  80.  
  81. }
  82. }
  83.  
  84. var HelperObj = new Helper();
  85. var MapMakerObj = new MapMaker();
  86. var MapaKMLObj = new MapaKML();
  87.  
Advertisement
Add Comment
Please, Sign In to add comment