From c0bd140466e30f85d25b5cc7affe37f12e4b10af Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Malte=20Hu=CC=88bner?= Date: Sat, 30 Sep 2017 21:16:48 +0200 Subject: [PATCH] Add shapeable maps. --- src/Element/Marker/ExtraMarker.php | 10 ++++++++++ src/ElementPrinter/Marker/ExtraMarkerPrinter.php | 15 +++++++++------ web/staticmap.php | 2 +- 3 files changed, 20 insertions(+), 7 deletions(-) diff --git a/src/Element/Marker/ExtraMarker.php b/src/Element/Marker/ExtraMarker.php index c0a52e3..4f40559 100644 --- a/src/Element/Marker/ExtraMarker.php +++ b/src/Element/Marker/ExtraMarker.php @@ -35,4 +35,14 @@ class ExtraMarker extends AbstractMarker $this->latitude = $latitude; $this->longitude = $longitude; } + + public function getShape(): int + { + return $this->shape; + } + + public function getColor(): int + { + return $this->color; + } } diff --git a/src/ElementPrinter/Marker/ExtraMarkerPrinter.php b/src/ElementPrinter/Marker/ExtraMarkerPrinter.php index c225aca..ecdbb18 100644 --- a/src/ElementPrinter/Marker/ExtraMarkerPrinter.php +++ b/src/ElementPrinter/Marker/ExtraMarkerPrinter.php @@ -10,7 +10,7 @@ use StaticMapLite\Util; class ExtraMarkerPrinter { - /** @var Marker $marker */ + /** @var ExtraMarker $marker */ protected $marker = null; public function __construct() @@ -48,17 +48,20 @@ class ExtraMarkerPrinter $extramarkersImgUrl = __DIR__.'/../../../images/extramarkers.png'; $extramarkers = imagecreatefrompng($extramarkersImgUrl); - $markerImage = imagecreatetruecolor(75, 100); - $trans_colour = imagecolorallocatealpha($markerImage, 0, 0, 0, 127); - imagefill($markerImage, 0, 0, $trans_colour); + $markerImage = imagecreatetruecolor(72, 92); + $transparentColor = imagecolorallocatealpha($markerImage, 0, 0, 0, 127); + imagefill($markerImage, 0, 0, $transparentColor); $markerWidth = imagesx($markerImage); $markerHeight = imagesy($markerImage); - imagecopy($markerImage, $extramarkers, 0, 0, 0, 0, $markerWidth, $markerHeight); + $sourceX = $markerWidth * $this->marker->getColor(); + $sourceY = $markerHeight * $this->marker->getShape(); + + imagecopy($markerImage, $extramarkers, 0, 0, $sourceX, $sourceY, $markerWidth, $markerHeight); $white = imagecolorallocate($markerImage, 255, 255, 255); - imagettftext($markerImage, 24, 0, 16, 42, $white, __DIR__.'/../../../fonts/fontawesome-webfont.ttf', json_decode('""')); + imagettftext($markerImage, 24, 0, 16, 47, $white, __DIR__.'/../../../fonts/fontawesome-webfont.ttf', json_decode('""')); return $markerImage; } diff --git a/web/staticmap.php b/web/staticmap.php index b4c519e..01fe81e 100644 --- a/web/staticmap.php +++ b/web/staticmap.php @@ -51,7 +51,7 @@ if ($markers) { foreach ($markerList as $markerData) { list($markerLatitude, $markerLongitude, $markerType) = explode(',', $markerData); - $marker = new ExtraMarker(ExtraMarker::SHAPE_CIRCLE, ExtraMarker::COLOR_GREEN, $markerLatitude, $markerLongitude); + $marker = new ExtraMarker(ExtraMarker::SHAPE_CIRCLE, ExtraMarker::COLOR_BLACK, $markerLatitude, $markerLongitude); $printer->addMarker($marker); }