# File: lib/Geo/Leaflet.pm ## 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 builds a [Leaflet JavaScript](https://leafletjs.com/) 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 => '© OpenStreetMap', }, ); Default: OpenStreetMaps See: [https://leafletjs.com/reference.html#tilelayer](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](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](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](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](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](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](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](HTML:Tiny) object to generate HTML. ### JSON Returns a [JSON::XS](https://metacpan.org/pod/JSON::XS) object to generate JSON. ## SEE ALSO [Geo::Google::StaticMaps::V2](https://metacpan.org/pod/Geo::Google::StaticMaps::V2) https://leafletjs.com/ ## AUTHOR Michael R. Davis ## COPYRIGHT AND LICENSE Copyright (C) 2024 by Michael R. Davis MIT LICENSE # File: lib/Geo/Leaflet/tileLayer.pm ## NAME Geo::Leaflet::tileLayer - Leaflet tileLayer Object ## SYNOPSIS use Geo::Leaflet; my $map = Geo::Leaflet->new; my $tileLayer = $map->tileLayer( url => 'https://tile.openstreetmap.org/{z}/{x}/{y}.png', options => { maxZoom => 19, attribution => '© OpenStreetMap', } ); ## DESCRIPTION This package constructs a Leaflet tileLayer object for use on a [Geo::Leaflet](https://metacpan.org/pod/Geo::Leaflet) map. ## CONSTRUCTORS ### new Returns a tileLayer object ### osm Returns the default OpenStreetMaps.org tileLayer. my $tileLayer = Geo::Leaflet::tileLayer->osm; ## PROPERTIES ### url ## METHODS ### stringify ## SEE ALSO ## AUTHOR Michael R. Davis ## COPYRIGHT AND LICENSE Copyright (C) 2024 by Michael R. Davis MIT LICENSE # File: lib/Geo/Leaflet/polyline.pm ## NAME Geo::Leaflet::polyline - Leaflet polyline object ## SYNOPSIS use Geo::Leaflet; my $map = Geo::Leaflet->new; my $polyline = $map->polyline( coordinates => [[$lat, $lon], ...] options => {}, ); ## DESCRIPTION This package constructs a Leaflet polyline object for use on a [Geo::Leaflet](https://metacpan.org/pod/Geo::Leaflet) map. ## PROPERTIES ### coordinates ### options ### popup ## METHODS ### stringify ## SEE ALSO ## AUTHOR Michael R. Davis ## COPYRIGHT AND LICENSE Copyright (C) 2024 by Michael R. Davis MIT LICENSE # File: lib/Geo/Leaflet/polygon.pm ## NAME Geo::Leaflet::polygon - Leaflet polygon object ## SYNOPSIS use Geo::Leaflet; my $map = Geo::Leaflet->new; my $polygon = $map->polygon( coordinates => [[$lat, $lon], ...] options => {}, ); ## DESCRIPTION This package constructs a Leaflet polygon object for use on a [Geo::Leaflet](https://metacpan.org/pod/Geo::Leaflet) map. ## PROPERTIES ### coordinates ### options ### popup ## METHODS ### stringify ## SEE ALSO ## AUTHOR Michael R. Davis ## COPYRIGHT AND LICENSE Copyright (C) 2024 by Michael R. Davis MIT LICENSE # File: lib/Geo/Leaflet/rectangle.pm ## NAME Geo::Leaflet::rectangle - Leaflet rectangle object ## SYNOPSIS use Geo::Leaflet; my $map = Geo::Leaflet->new; my $rectangle = $map->rectangle( llat => $llat, llon => $llon, ulat => $ulat, ulon => $ulon, options => {}, ); ## DESCRIPTION This package constructs a Leaflet rectangle object for use on a [Geo::Leaflet](https://metacpan.org/pod/Geo::Leaflet) map. ## PROPERTIES ### llat ### llon ### ulat ### ulon ### options ### popup ## METHODS ### stringify ## SEE ALSO ## AUTHOR Michael R. Davis ## COPYRIGHT AND LICENSE Copyright (C) 2024 by Michael R. Davis MIT LICENSE # File: lib/Geo/Leaflet/circle.pm ## NAME Geo::Leaflet::circle - Leaflet circle object ## SYNOPSIS use Geo::Leaflet; my $map = Geo::Leaflet->new; my $circle = $map->circle( lat => $lat, lon => $lon, radius => $radius, options => {}, ); ## DESCRIPTION This package constructs a Leaflet circle object for use on a [Geo::Leaflet](https://metacpan.org/pod/Geo::Leaflet) map. ## PROPERTIES ### lat ### lon ### radius ### options ## METHODS ### stringify ## SEE ALSO ## AUTHOR Michael R. Davis ## COPYRIGHT AND LICENSE Copyright (C) 2024 by Michael R. Davis MIT LICENSE # File: lib/Geo/Leaflet/marker.pm ## NAME Geo::Leaflet::marker - Leaflet marker object ## SYNOPSIS use Geo::Leaflet; my $map = Geo::Leaflet->new; my $marker = $map->marker( lat => $lat, lon => $lon, ); ## DESCRIPTION This package constructs a Leaflet marker object for use on a [Geo::Leaflet](https://metacpan.org/pod/Geo::Leaflet) map. ## PROPERTIES ### lat ### lon ### options ### popup ## METHODS ### stringify ## SEE ALSO ## AUTHOR Michael R. Davis ## COPYRIGHT AND LICENSE Copyright (C) 2024 by Michael R. Davis MIT LICENSE # File: lib/Geo/Leaflet/icon.pm ## NAME Geo::Leaflet::icon - Leaflet icon object ## SYNOPSIS use Geo::Leaflet; my $map = Geo::Leaflet->new; ## DESCRIPTION This package constructs a Leaflet icon object for use in a [Geo::Leaflet::marker](https://metacpan.org/pod/Geo::Leaflet::marker) object. ## CONSTRUCTORS ### new ## PROPERTIES ### name ### options ## METHODS ### stringify ### JSON ## SEE ALSO ## AUTHOR Michael R. Davis ## COPYRIGHT AND LICENSE Copyright (C) 2024 by Michael R. Davis MIT LICENSE