-
Notifications
You must be signed in to change notification settings - Fork 0
/
MapaKML.js
70 lines (62 loc) · 2.46 KB
/
MapaKML.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
"use strict";
class RepresentadorKML {
constructor() {
this.markers = new Array();
}
printError(errorStr) {
//borramos la ultima seccion en caso de que el usuario presione mas de una vez en el boton
$("main section").remove();
//insertamos una seccion y metemos los datos dentro de ella
$("main").append("<section></section>");
$("section:last").html("<p>ERROR -> " + errorStr + "</p>");
}
initMap() {
//preparamos la seccion en la que va a ir el mapa
$("main").append("<article></article>");
var oviedo = { lat: 43.3672702, lng: -5.8502461 };
//insertamos el mapa
this.map = new google.maps.Map(document.querySelector("main article"), {
center: oviedo,
zoom: 2,
});
}
leerArchivoKML(archivo) {
//eliminamos todos los markers del mapa desvinculandolos del mismo
for(var i = 0 ; i < this.markers.length;i++){
this.markers[i].setMap(null);
}
//vamos a cargar el contenido del archivo y procesarlo con jquery
var lector = new FileReader();
//generamos la seccion para el contenido
lector.readAsText(archivo);
lector.onload = function (evento) {
var points = new Array();
$("Placemark", lector.result).each(function () {
var placemark = $(this);
//vamos a obtener la informacion de la placemark
var nombre = $("name", placemark).text();
var descripcion = $("description", placemark).text();
var coords = $("point coordinates", placemark).text().split(",");
var lat = parseFloat(coords[0]);
var long = parseFloat(coords[1]);
points.push({nombre : nombre , lat : lat, long: long})
});
var i;
for(i = 0 ; i< points.length ; i++){
this.generarMarker(points[i]);
}
}.bind(this);
};
generarMarker(point) {
console.log(point.lat +","+point.long)
//creamos el marker en el mapa
var marker = new google.maps.Marker({
position: { lat: point.lat, lng: point.long },
map: this.map,
title: point.nombre
});
//guardamos los marcadores creados
this.markers.push(marker);
}
}
var representadorKML = new RepresentadorKML();