function testAddEmptyPoint() { $p = new KVDgis_GeomPoint(); $p->setGeometryFromText('EMPTY'); $this->testLineString->addPoint($p); $this->assertTrue($this->testLineString->isEmpty()); }
/** * getLinkToGoogleMaps * * @param array $parameters De sleutel 'base_url' moet altijd aanwzig zijn. * Andere mogelijkheden zijn 'label' en andere * parameters die door google maps ondersteund worden. * @param KVDgis_GeomPoint $punt * @return string */ public static function getLinkToGoogleMaps(array $parameters, KVDgis_GeomPoint $punt) { self::checkLinkParameters($parameters); if (!$punt->getSrid() == KVDgis_UtilSrid::WGS84) { throw new InvalidArgumentException('U kunt enkel punten in WGS84 formaat zetten op google maps.'); } $q = $punt->getY() . ',' . $punt->getX(); if (isset($parameters['label'])) { $q .= ' (' . str_replace(array('(', ')'), '', $parameters['label']) . ')'; unset($parameters['label']); } $parameters['q'] = $q; $base = $parameters['base_url']; unset($parameters['base_url']); return $base . '?' . http_build_query($parameters, '', '&'); }
/** * * @see KVDgis_GeomGeometry::setGeometryFromText() * @param string $wkt vb. LINESTRING(1 2,4 5, 8 9). * @throws <b>InvalidArgumentException</b> - Indien de wkt-string ongeldig is. */ public function setGeometryFromText($wkt) { $this->clear(); if ($wkt == 'EMPTY') { return; } if (substr($wkt, 0, 10) != 'LINESTRING') { throw new InvalidArgumentException('Ongeldige Well-Known Text string: ' . $wkt . "\n. De string zou moeten beginnen met 'LINESTRING'."); } $stringLineString = $this->getStringBetweenBraces($wkt); $points = explode(",", $stringLineString); foreach ($points as $point) { if (strpos($point, '(') === false) { $stringPoint = trim($point); } else { throw new InvalidArgumentException('Ongeldige Well-Known Text string: ' . $wkt . "\n. Een xy-paar mag niet omgeven worden door ronde haakjes."); } $punten = explode(" ", $stringPoint); $pointObj = new KVDgis_GeomPoint($this->getSrid()); $pointObj->setX($punten['0']); $pointObj->setY($punten['1']); $this->addPoint($pointObj); } }
/** * * @see KVDgis_GeomGeometry::setGeometryFromText() * @param string $wkt vb. MULTIPOINT((1 2), (4 5), (8 9)). * Het ongeldige type dat postgis en de meeste * andere paketten aanmaken kan ook gelezen worden. * @throws <b>InvalidArgumentException</b> - Indien de wkt-string ongeldig is. */ public function setGeometryFromText($wkt) { if ($wkt == 'EMPTY') { $this->clearPoints(); return; } if (substr($wkt, 0, 10) != 'MULTIPOINT') { throw new InvalidArgumentException('Ongeldige Well-Known Text string: ' . $wkt . "\n. De string zou moeten beginnen met 'MULTIPOINT'."); } $this->clearPoints(); $stringMultiPoint = $this->getStringBetweenBraces($wkt); $points = explode(",", $stringMultiPoint); foreach ($points as $point) { if (strpos($point, '(') === false) { $stringPoint = trim($point); } else { $stringPoint = $this->getStringBetweenBraces($point); } $punten = explode(" ", $stringPoint); $pointObj = new KVDgis_GeomPoint($this->getSrid()); $pointObj->setX($punten['0']); $pointObj->setY($punten['1']); $this->addPoint($pointObj); } }