/** * it draws object on map * * @param Map $map */ public function draw(Map $map) { $points = array(); $count = 0; foreach ($this->_points as $point) { $coordinates = $map->getPixelPointFromCoordinates($point->getLon(), $point->getLat()); $points[] = $coordinates['x']; $points[] = $coordinates['y']; $count++; } if ($count < 3) { return; } imagefilledpolygon($map->getImage(), $points, $count, $this->_getDrawColor($map->getImage())); }
/** * method puts image onto map image * * @param Map $map * @param resources $imageToPut */ public function putImage(Map $map, $imageToPut) { $mapImage = $map->getImage(); $width = imagesx($imageToPut); $height = imagesy($imageToPut); imagecopy($mapImage, $imageToPut, imagesx($mapImage) - $width, 0, 0, 0, $width, $height); }
/** * draw point on map * * @param Map $map */ public function draw(Map $map) { $image = $map->getImage(); $color = $this->_getDrawColor($image); $pointInPixels = $map->getPixelPointFromCoordinates($this->_coordinates['lon'], $this->_coordinates['lat']); imagesetpixel($image, $pointInPixels['x'], $pointInPixels['y'], $color); }
/** * draw line on map * * @param Map $map */ public function draw(Map $map) { $image = $map->getImage(); $startPointInPixels = $map->getPixelPointFromCoordinates($this->_startPoint->getLon(), $this->_startPoint->getLat()); $endPointInPixels = $map->getPixelPointFromCoordinates($this->_endPoint->getLon(), $this->_endPoint->getLat()); $this->_drawLine($image, $startPointInPixels['x'], $startPointInPixels['y'], $endPointInPixels['x'], $endPointInPixels['y']); }
/** * methods find out which label should be used for map * * @param float $scale * @param float $equatorPixelsPerKm */ private function _findOutWhichLabel($scale, $equatorPixelsPerKm) { $mapWidth = imagesx($this->_map->getImage()); $maxLenghtOfScaleBar = $mapWidth / 4; foreach (self::$possibleLables as $label) { if ($this->_calculateLengthOfScaleBar($label, $scale, $equatorPixelsPerKm) < $maxLenghtOfScaleBar) { return $label; } } return $label; }
public function __construct(Map $map, Conf $conf) { $this->setImageHandler($map->getImageHandler()); $this->_logoLayout = LogoLayout::factory($conf->get('logo_layout')); $this->_logoFiles = $conf->get('logo_files'); $this->setWorldMap($map->getWorldMap()); $leftUpCorner = $map->getLeftUpCorner(); $this->setLeftUpCorner($leftUpCorner['lon'], $leftUpCorner['lat']); $rightDownCorner = $map->getRightDownCorner(); $this->setRightDownCorner($rightDownCorner['lon'], $rightDownCorner['lat']); parent::__construct($map->getImage()); }
/** * draw point on map * * @param Map $map */ public function draw(Map $map) { $image = $map->getImage(); $color = $this->_getDrawColor($image); $pointImage = false; if ($this->hasImageUrl()) { $size = HelpClass::getSizeOfRemoteFile($this->_imageUrl->getUrl()); if ($size <= self::$maxSizeOfPointImage) { try { $imageHandler = ImageHandler::createImageHandlerFromFileExtension($this->_imageUrl->getUrl()); $pointImage = $imageHandler->loadImage($this->_imageUrl->getUrl()); } catch (ImageHandlerException $e) { } } } if ($pointImage !== false) { $map->putImage($pointImage, $this->getLon(), $this->getLat()); } else { $color = $this->_getDrawColor($image); $point = $map->getPixelPointFromCoordinates($this->getLon(), $this->getLat()); $vertices = array($point['x'], $point['y'], $point['x'] - 10, $point['y'] - 20, $point['x'] + 10, $point['y'] - 20); imagefilledpolygon($map->getImage(), $vertices, 3, $color); } }
/** * method puts image onto map image * * @param Map $map * @param resources $imageToPut */ public function putImage(Map $map, $imageToPut) { $mapImage = $map->getImage(); $width = imagesx($imageToPut); $height = imagesy($imageToPut); if ($map instanceof LogoMap) { $layout = $map->getLogoLayout(); $logoImage = $map->getLogoImage(); if ($logoImage !== false && $layout instanceof LayoutRightDownCorner) { $logoHeight = imagesy($logoImage); imagecopymerge($mapImage, $imageToPut, imagesx($mapImage) - $width, imagesy($mapImage) - $height - $logoHeight, 0, 0, $width, $height, 100); return; } } imagecopymerge($mapImage, $imageToPut, imagesx($mapImage) - $width, imagesy($mapImage) - $height, 0, 0, $width, $height, 100); }
/** * method puts image onto map image * * @param Map $map * @param resources $imageToPut */ public function putImage(Map $map, $imageToPut) { $mapImage = $map->getImage(); imagecopy($mapImage, $imageToPut, 0, 0, 0, 0, imagesx($imageToPut), imagesy($imageToPut)); }
<?php include "Map.php"; header('Content-type: image/jpeg'); $img = new Map(); $img->addMark(0, 0, "Test1"); $img->addMark(1509.2726, -886.655, "Test2"); $img->addMark(-2065.115, -83.5138, "Test3"); $img->addMark(1711.824, -1894.1769, "Test4"); imagejpeg($img->getImage()); imagedestroy($img->getImage());
/** * create output map from the temoporary one * * @param Map $map */ private function _prepareOutputMap($map) { $image = $map->getImage(); $outputMapLeftUpInPixels = $this->_getLeftUpCornerForCutingResultMap($map); $resultMap = new Map($this->_createResultMapImage($image, $outputMapLeftUpInPixels['x'], $outputMapLeftUpInPixels['y'], $this->_mapData->getWidth(), $this->_mapData->getHeight())); $this->_setUpResultMapCorners($resultMap); $resultMap->setWorldMap($this->_worldMap); $resultMap->setImageHandler($this->_tileSource->getImageHandler()); return $resultMap; }