NAME
Geo::Leaflet - Generates a Leaflet JavaScript map web page
SYNOPSIS
use Geo::Leaflet;
my $map = Geo::Leaflet->new;
print $map->html;
DESCRIPTION
This package generates a Leaflet JavaScript map web page.
CONSTRUCTORS
new
Returns a map object
my $map = Geo::Leaflet->new(
id => "map",
center => [$lat, $lon],
zoom => 13,
);
MAP PROPERTIES
id
Sets and returns the html id of the map.
Default: "map"
center
Sets and returns the center of the map.
$map->center([$lat, $lon]);
my $center = $map->center;
Default: [38.2, -97.2]
zoom
Sets and returns the zoom of the map.
$map->zoom(4.5);
my $zoom = $map->zoom;
Default: 4.5
setView
Sets the center and zoom of the map and returns the map object (i.e., matches leaflet.js interface).
$map->setView([51.505, -0.09], 13);
width
Sets and returns the pixel width of the map.
$map->width(600);
my $width = $map->width;
Default: 600
height
Sets and returns the pixel height of the map.
$map->height(600);
my $height = $map->height;
Default: 400
HTML PROPERTIES
title
Sets and returns the HTML title.
Default: "Leaflet Map"
TILE LAYER CONSTRUCTOR
tileLayer
Creates and returns a tileLayer object which is added to the map.
$map->tileLayer(
url => 'https://tile.openstreetmap.org/{z}/{x}/{y}.png',
options => {
maxZoom => 19,
attribution => '© <a href="http://www.openstreetmap.org/copyright">OpenStreetMap</a>',
},
);
Default: OpenStreetMaps
See: https://leafletjs.com/reference.html#tilelayer
ICON CONSTRUCTOR
icon
my $icon = $map->icon(
name => "my_icon", #must be a valid JavaScript variable name
options => {
iconUrl => "my-icon.png",
iconSize => [38, 95],
iconAnchor => [22, 94],
popupAnchor => [-3, -76],
shadowUrl => "my-icon-shadow.png",
shadowSize => [68, 95],
shadowAnchor => [22, 94],
}
);
See: https://leafletjs.com/reference.html#icon
MAP OBJECT CONSTRUCTORS
marker
Adds a marker object to the map and returns a reference to the marker object.
$map->marker(lat=>$lat, lon=>$lon);
See: https://leafletjs.com/reference.html#marker
polyline
Adds a polyline object to the map and returns a reference to the polyline object.
my $latlngs = [[$lat, $lon], ...]
$map->polyline(coordinates=>$latlngs, options=>{});
See: https://leafletjs.com/reference.html#polyline
polygon
Adds a polygon object to the map and returns a reference to the polygon object.
my $latlngs = [[$lat, $lon], ...]
$map->polygon(coordinates=>$latlngs, options=>{});
See: https://leafletjs.com/reference.html#polygon
rectangle
Adds a rectangle object to the map and returns a reference to the rectangle object.
$map->rectangle(llat => $llat,
llon => $llon,
ulat => $ulat,
ulon => $ulon,
options => {});
See: https://leafletjs.com/reference.html#rectangle
circle
Adds a circle object to the map and returns a reference to the circle object.
$map->circle(lat=>$lat, lon=>$lon, radius=>$radius, options=>{});
See: https://leafletjs.com/reference.html#circle
METHODS
html
html_head_link
html_head_script
html_head_style
html_body_div
html_body_script
html_body_script_map
html_body_script_contents
OBJECT ACCESSORS
HTML
Returns an HTML:Tiny object to generate HTML.
JSON
Returns a JSON::XS object to generate JSON.
SEE ALSO
Geo::Google::StaticMaps::V2 https://leafletjs.com/
AUTHOR
Michael R. Davis
COPYRIGHT AND LICENSE
Copyright (C) 2024 by Michael R. Davis
MIT LICENSE