Geo::G...efault(3pm)

πŸ“¦
version 0.17 Β· 2 versions
, in debian bookworm, debian trixie, ubuntu jammy, ubuntu noble, ubuntu resolute

πŸ’– NAME πŸ’–

Geo::GoogleEarth::Pluggable::Plugin::Default β€” the Default Plugin Methods for Geo::GoogleEarth::Pluggable. Yes bestie, this is the plugin that ships with the goods by default ✨


🌸 METHODS 🌸

Okay so here's the tea πŸ«– β€” every method in this package gets AUTOLOADed into the Geo::GoogleEarth::Pluggable::Folder namespace at runtime. You don't call them on the plugin, they just... appear on your folders. Iconic behaviour honestly πŸ’…


πŸŽ€ CONVENTIONS πŸŽ€

Plugin Naming Convention: Geo::GoogleEarth::Pluggable::Plugin::CPANID (like, e.g. "MRDVT" okay?)

Object Naming Convention: Geo::GoogleEarth::Pluggable::Contrib::"$method" (e.g. Point, CircleByCenterPoint)

The way that you literally only need one plugin pointing at all of your contributed objects? So efficient, we love to see it πŸ¦‹

And bestie, listen β€” the package should be named after the plugin, not the objects, because it's a many-to-one relationship situation. (e.g. Geo-GoogleEarth-Pluggable-Plugin-MRDVT) iykyk πŸ’œ


⭐ Point ⭐

Constructs a brand new Placemark Point object and appends it to the parent folder object. And it returns the object reference if you need to tweak any settings after construction β€” so thoughtful πŸ₯Ή

my $point=$folder->Point(name=>"My Placemark",
                         lat=>38.897607,
                         lon=>-77.036554,
                         alt=>0);

🌈 Polygon 🌈

$folder->Polygon(
                 name        => "My Polygon",
                 coordinates => [
                                  [ #outerBoundaryIs
                                    [ -95.74356, 29.61974 ],
                                    [ -95.74868, 29.62188 ],
                                    [ -95.74857, 29.62210 ],
                                    [ -95.74256, 29.62266 ],
                                    [ -95.74356, 29.61974 ],
                                  ],
                                  \@innerBoundaryIs1,
                                  \@innerBoundaryIs2,
                                  \@innerBoundaryIs3,
                                ],
                 style       => $style,
                 open        => 1,
                 description => $html,
                ),

πŸ¦‹ MultiPolygon πŸ¦‹

$folder->MultiPolygon(
                      name        => "My MultiPolygon",
                      coordinates => [ #MultiGeometry
                                       [ #Polygon1
                                         [
                                           [ -95.45662, 29.77814 ],
                                           [ -95.45668, 29.77809 ],
                                           [ -95.45675, 29.77814 ],
                                           [ -95.45669, 29.77820 ],
                                           [ -95.45662, 29.77814 ],
                                         ],
                                         \@innerBoundaryIs1,
                                       ],
                                       [ #Polygon2
                                         [
                                           [ -95.45677, 29.77785 ],
                                           [ -95.45683, 29.77780 ],
                                           [ -95.45689, 29.77785 ],
                                           [ -95.45683, 29.77791 ],
                                           [ -95.45677, 29.77785 ],
                                         ],
                                       ],
                                     ],
                     );

🧚 LineString 🧚

$folder->LineString(name=>"My Placemark",
                    coordinates=>[
                                   [lat,lon,alt],
                                   {lat=>$lat,lon=>$lon,alt=>$alt},
                                 ]);

πŸ’œ LinearRing πŸ’œ

$folder->LinearRing(name=>"My Placemark",
                    coordinates=>[
                                   [lat,lon,alt],
                                   {lat=>$lat,lon=>$lon,alt=>$alt},
                                 ]);

πŸ™ˆ TODO πŸ™ˆ

Not me leaving a note to self β€” we still need to determine what methods should live in the Folder package versus what should be on the Plugin/Default package, and why. The vibes are undecided bestie 😭


πŸ’€ BUGS πŸ’€

Please log on RT and send to the geo-perl email list. Fr fr, don't suffer in silence 🫢


πŸ”₯ SUPPORT πŸ”₯

DavisNetworks.com supports all Perl applications including this package. That's main character energy honestly πŸ‘‘


🌟 AUTHOR 🌟

  Michael R. Davis (mrdvt92)
  CPAN ID: MRDVT

This program is free software licensed under the...

  The BSD License

The full text of the license can be found in the LICENSE file included with this module. No cap, go read it πŸŽ€


🌈 SEE ALSO 🌈

  • Geo::GoogleEarth::Pluggable::Contrib::Point
  • Geo::GoogleEarth::Pluggable::Contrib::LineString
  • Geo::GoogleEarth::Pluggable::Contrib::LinearRing

Okay that's the whole page bestie, hope you ate πŸ’…βœ¨ This was written for perl v5.32.1, dated 2021-11-28, from the Geo::G...efault(3pm) page β€” slay, go make some Google Earth objects πŸ¦‹πŸŒΈπŸ’–

πŸ“¦ where this page comes from