LeafletJS - Capas vectoriales
En el capítulo anterior, aprendimos cómo usar marcadores en Leaflet. Junto con los marcadores, también podemos agregar varias formas como círculos, polígonos, rectángulos, polilíneas, etc. En este capítulo, discutiremos cómo usar las formas proporcionadas por Google Maps.
Polilínea
Para dibujar la superposición de polilíneas en un mapa utilizando la biblioteca de JavaScript de Leaflet, siga los pasos que se indican a continuación:
Step 1 - Crea un Mapobjeto pasando un elemento < div > (String u objeto) y opciones de mapa (opcional).
Step 2 - Crea un Layer objeto pasando la URL del mosaico deseado.
Step 3 - Agregue el objeto de capa al mapa usando el addLayer() método del Map clase.
Step 4 - Crea un latlangs variable para mantener los puntos para dibujar la polilínea, como se muestra a continuación.
// Creating latlng object
var latlngs = [
[17.385044, 78.486671],
[16.506174, 80.648015],
[17.000538, 81.804034],
[17.686816, 83.218482]
];
Step 5 - Cree una polilínea usando el L.polyline(). Para dibujar la polilínea, pase las ubicaciones como variable y una opción para especificar el color de las líneas.
// Creating a poly line
var polyline = L.polyline(latlngs, {color: 'red'});
Step 6 - Agregue la polilínea al mapa usando el addTo() método del Polyline clase.
// Adding to poly line to map
polyline.addTo(map);
Ejemplo
A continuación se muestra el código que dibuja una polilínea, que cubre las ciudades de Hyderabad, Vijayawada, Rajamahendrawaram y Vishakhapatnam (India).
DOCTYPE html>
<html>
<head>
<title>Leaflet Poly lines</title>
<link rel = "stylesheet" href = "http://cdn.leafletjs.com/leaflet-0.7.3/leaflet.css"/>
<script src = "http://cdn.leafletjs.com/leaflet-0.7.3/leaflet.js"></script>
</head>
<body>
<div id = "map" style = "width:900px; height:580px"></div>
<script>
// Creating map options
var mapOptions = {
center: [16.506174, 80.648015],
zoom: 7
}
// Creating a map object
var map = new L.map('map', mapOptions);
// Creating a Layer object
var layer = new L.TileLayer('http://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png');
// Adding layer to the map
map.addLayer(layer);
// Creating latlng object
var latlngs = [
[17.385044, 78.486671],
[16.506174, 80.648015],
[17.000538, 81.804034],
[17.686816, 83.218482]
];
// Creating a poly line
var polyline = L.polyline(latlngs, {color: 'red'});
// Adding to poly line to map
polyline.addTo(map);
</script>
</body>
</html>
Genera la siguiente salida
Polígono
Para dibujar una superposición de polígonos en un mapa utilizando la biblioteca de JavaScript de Leaflet, siga los pasos que se indican a continuación:
Step 1 - Crea un Mapobjeto pasando un elemento < div > (String u objeto) y opciones de mapa (opcional).
Step 2 - Crea un Layer objeto pasando la URL del mosaico deseado.
Step 3 - Agregue el objeto de capa al mapa usando el addLayer() método del Map clase.
Step 4 - Crea un latlangs variable para contener los puntos para dibujar el polígono.
// Creating latlng object
var latlngs = [
[17.385044, 78.486671],
[16.506174, 80.648015],
[17.686816, 83.218482]
];
Step 5 - Crea un polígono usando el L.polygon(). Pase las ubicaciones / puntos como variable para dibujar el polígono y una opción para especificar el color del polígono.
// Creating a polygon
var polygon = L.polygon(latlngs, {color: 'red'});
Step 6 - Agregue el polígono al mapa usando el addTo() método del Polygon clase.
// Adding to polygon to map
polygon.addTo(map);
Ejemplo
A continuación se muestra el código para dibujar un polígono que cubra las ciudades de Hyderabad, Vijayawada y Vishakhapatnam (India).
<!DOCTYPE html>
<html>
<head>
<title>Leaflet Polygons</title>
<link rel = "stylesheet" href = "http://cdn.leafletjs.com/leaflet-0.7.3/leaflet.css"/>
<script src = "http://cdn.leafletjs.com/leaflet-0.7.3/leaflet.js"></script>
</head>
<body>
<div id = "map" style = "width:900px; height:580px"></div>
<script>
// Creating map options
var mapOptions = {
center: [16.506174, 80.648015],
zoom: 7
}
// Creating a map object
var map = new L.map('map', mapOptions);
// Creating a Layer object
var layer = new L.TileLayer('http://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png');
// Adding layer to the map
map.addLayer(layer);
// Creating latlng object
var latlngs = [
[17.385044, 78.486671],
[16.506174, 80.648015],
[17.686816, 83.218482]
];
// Creating a polygon
var polygon = L.polygon(latlngs, {color: 'red'});
// Adding to polygon to map
polygon.addTo(map);
</script>
</body>
</html>
Genera la siguiente salida:
Rectángulo
Para dibujar una superposición de rectángulo en un mapa utilizando la biblioteca de JavaScript de folletos, siga los pasos que se indican a continuación
Step 1 - Crea un Mapobjeto pasando un elemento < div > (String u objeto) y opciones de mapa (opcional).
Step 2 - Crea un Layer objeto pasando la URL del mosaico deseado.
Step 3 - Agregue el objeto de capa al mapa usando el addLayer() método del Map clase.
Step 4 - Cree una variable latlangs para contener los puntos para dibujar un rectángulo en el mapa.
// Creating latlng object
var latlngs = [
[17.342761, 78.552432],
[16.396553, 80.727725]
];
Step 5 - Crea un rectángulo usando el L.rectangle()función. Pase las ubicaciones / puntos como una variable para dibujar un rectángulo yrectangleOptions para especificar el color y el peso del rectángulo.
// Creating rectOptions
var rectOptions = {color: 'Red', weight: 1}
// Creating a rectangle
var rectangle = L.rectangle(latlngs, rectOptions);
Step 6 - Agregue el rectángulo al mapa usando el addTo() método del Polygon clase.
// Adding to rectangle to map
rectangle.addTo(map);
Ejemplo
A continuación se muestra el código para dibujar un rectángulo en el mapa utilizando la biblioteca de JavaScript de Leaflet.
<!DOCTYPE html>
<html>
<head>
<title>Leaflet Rectangle</title>
<link rel = "stylesheet" href = "http://cdn.leafletjs.com/leaflet-0.7.3/leaflet.css"/>
<script src = "http://cdn.leafletjs.com/leaflet-0.7.3/leaflet.js"></script>
</head>
<body>
<div id = "map" style = "width:900px; height:580px"></div>
<script>
// Creating map options
var mapOptions = {
center: [16.506174, 80.648015],
zoom: 7
}
var map = new L.map('map', mapOptions); // Creating a map object
// Creating a Layer object
var layer = new L.TileLayer('http://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png');
map.addLayer(layer); // Adding layer to the map
// Creating latlng object
var latlngs = [
[17.342761, 78.552432],
[16.396553, 80.727725]
];
var rectOptions = {color: 'Red', weight: 1} // Creating rectOptions
// Creating a rectangle
var rectangle = L.rectangle(latlngs, rectOptions);
rectangle.addTo(map); // Adding to rectangle to map
</script>
</body>
</html>
Genera la siguiente salida:
Circulo
Para dibujar una superposición circular en un mapa utilizando la biblioteca de JavaScript de Leaflet, siga los pasos que se indican a continuación.
Step 1 - Crea un Mapobjeto pasando un elemento < div > (String u objeto) y opciones de mapa (opcional).
Step 2 - Crea un Layer objeto pasando la URL del mosaico deseado.
Step 3 - Agregue el objeto de capa al mapa usando el addLayer() método del Map clase.
Step 4 - Cree una variable latlangs para mantener el centro del círculo como se muestra a continuación.
// Center of the circle
var circleCenter = [17.385044, 78.486671];
Step 5 - Cree una variable circleOptions para especificar valores para las opciones color, fillColor y fillOpacity como se muestra a continuación.
// Circle options
var circleOptions = {
color: 'red',
fillColor: '#f03',
fillOpacity: 0
}
Step 6 - Crea un círculo usando L.circle(). Pase el centro del círculo, el radio y las opciones de círculo a esta función.
// Creating a circle
var circle = L.circle(circleCenter, 50000, circleOptions);
Step 7 - Agregue el círculo creado anteriormente al mapa usando el addTo() método del Polyline clase.
// Adding circle to the map
circle.addTo(map);
Ejemplo
A continuación se muestra el código para dibujar un círculo con las coordenadas de la ciudad de Hyderabad como su radio.
<!DOCTYPE html>
<html>
<head>
<title>Leaflet Circle</title>
<link rel = "stylesheet" href = "http://cdn.leafletjs.com/leaflet-0.7.3/leaflet.css"/>
<script src = "http://cdn.leafletjs.com/leaflet-0.7.3/leaflet.js"></script>
</head>
<body>
<div id = "map" style = "width: 900px; height: 580px"></div>
<script>
// Creating map options
var mapOptions = {
center: [17.385044, 78.486671],
zoom: 7
}
var map = new L.map('map', mapOptions); // Creating a map object
// Creating a Layer object
var layer = new L.TileLayer('http://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png');
map.addLayer(layer); // Adding layer to the map
var circleCenter = [17.385044, 78.486671]; // Center of the circle
// Circle options
var circleOptions = {
color: 'red',
fillColor: '#f03',
fillOpacity: 0
}
// Creating a circle
var circle = L.circle(circleCenter, 50000, circleOptions);
circle.addTo(map); // Adding circle to the map
</script>
</body>
</html>>
Genera la siguiente salida: