public function addElement(XMLElement $element) { $name = $element->name(); $value = $element->value(); switch ($name) { case 'NAME': $this->layerName = $value; break; case 'TITLE': $this->title = $value; break; case 'ABSTRACT': $this->abstract = $value; break; case 'MAXSCALEDENOMINATOR': $this->maxScaleDenom = $value; break; case 'MINSCALEDENOMINATOR': $this->minScaleDenom = $value; break; case 'CRS': $projNumber = end(explode(':', $value)); $this->projections[$projNumber] = $value; break; case 'EX_GEOGRAPHICBOUNDINGBOX': $this->bboxes[self::GEOGRAPHIC_PROJECTION] = array( 'xmin' => $element->getProperty('WESTBOUNDLONGITUDE'), 'xmax' => $element->getProperty('EASTBOUNDLONGITUDE'), 'ymin' => $element->getProperty('SOUTHBOUNDLATITUDE'), 'ymax' => $element->getProperty('NORTHBOUNDLATITUDE'), ); break; case 'BOUNDINGBOX': $this->bboxes[$element->getAttrib('CRS')] = array( 'xmin' => $element->getAttrib('MINX'), 'xmax' => $element->getAttrib('MAXX'), 'ymin' => $element->getAttrib('MINY'), 'ymax' => $element->getAttrib('MAXY'), ); break; case 'STYLE': $this->styles[] = $element; break; default: parent::addElement($element); break; } }
public function addElement(XMLElement $element) { $name = $element->name(); $value = $element->value(); switch ($name) { case 'ICONSTYLE': $iconChild = $element->getChildElement('ICON'); $this->iconStyle = array(MapStyle::ICON => $iconChild->getProperty('HREF'), MapStyle::WIDTH => $element->getProperty('W'), MapStyle::HEIGHT => $element->getProperty('H'), MapStyle::SCALE => $element->getProperty('SCALE')); break; case 'BALLOONSTYLE': $this->balloonStyle = array(MapStyle::FILLCOLOR => $element->getProperty('BGCOLOR'), MapStyle::COLOR => $element->getProperty('TEXTCOLOR')); break; case 'LINESTYLE': $this->lineStyle = array(MapStyle::COLOR => $element->getProperty('COLOR'), MapStyle::WEIGHT => $element->getProperty('WEIGHT')); break; case 'POLYSTYLE': // if OUTLINE == 1, keep track and use lineStyle for outlines // if FILL == 1, use supplied color, otherwise just ignore color $shouldFill = $element->getProperty('FILL'); $color = $shouldFill ? $element->getProperty('COLOR') : null; $this->polyStyle = array(MapStyle::FILLCOLOR => $color, MapStyle::SHOULD_OUTLINE => $element->getProperty('OUTLINE')); break; case 'LABELSTYLE': $this->labelStyle = array(); break; case 'LISTSTYLE': $this->listStyle = array(); break; case 'PAIR': $state = $element->getProperty('KEY'); $styleRef = substr($element->getProperty('STYLEURL'), 1); $style = $this->styleContainer->getStyle($styleRef); // store the style URL if the parser hasn't yet loaded the associated simple style if ($state == 'normal') { $this->normalStyle = $style ? $styleRef : $style; } else { if ($state == 'highlighted') { $this->highlightStyle = $style ? $styleRef : $style; } } break; default: parent::addElement($element); break; } }
public function addElement(XMLElement $element) { $name = $element->name(); $value = $element->value(); switch ($name) { case 'NAME': $this->layerName = $value; break; case 'TITLE': $this->title = $value; break; case 'ABSTRACT': $this->abstract = $value; break; case 'MAXSCALEDENOMINATOR': $this->maxScaleDenom = $value; break; case 'MINSCALEDENOMINATOR': $this->minScaleDenom = $value; break; case 'CRS': $projNumber = end(explode(':', $value)); if ($projNumber == '4326') { // 4326 flips x and y cooordinates (x = lat, y = lon) // TODO we need a better way to deal with this special case $this->projections[$projNumber] = self::GEOGRAPHIC_PROJECTION; } else { $this->projections[$projNumber] = $value; } break; case 'EX_GEOGRAPHICBOUNDINGBOX': $this->bboxes[self::GEOGRAPHIC_PROJECTION] = array('xmin' => floatval($element->getProperty('WESTBOUNDLONGITUDE')), 'xmax' => floatval($element->getProperty('EASTBOUNDLONGITUDE')), 'ymin' => floatval($element->getProperty('SOUTHBOUNDLATITUDE')), 'ymax' => floatval($element->getProperty('NORTHBOUNDLATITUDE'))); break; case 'BOUNDINGBOX': $this->bboxes[$element->getAttrib('CRS')] = array('xmin' => floatval($element->getAttrib('MINX')), 'xmax' => floatval($element->getAttrib('MAXX')), 'ymin' => floatval($element->getAttrib('MINY')), 'ymax' => floatval($element->getAttrib('MAXY'))); break; case 'STYLE': $this->styles[] = $element; break; default: parent::addElement($element); break; } }