def parse(kml)
      @factory.reset
      @with_z = false
      @parser = REXML::Parsers::PullParser.new(kml)
      while @parser.has_next?
        e = @parser.pull
        if e.start_element?
          if (type = ELEMENT_MAP[e[0]])
            @factory.begin_geometry(type)
          else
            @buffer = '' if (e[0] == 'coordinates') # clear the buffer
            accumulate_start(e)
          end
        elsif e.end_element?
          if ELEMENT_MAP[e[0]]
            @factory.end_geometry(@with_z)
            @buffer = '' # clear the buffer
          else
            accumulate_end(e)
            if (e[0] == 'coordinates')
              parse_coordinates(@buffer)
              @buffer = '' # clear the buffer
            end
          end
        elsif e.text?
          accumulate_text(e)
        elsif e.cdata?
          accumulate_cdata(e)
        end
      end
      @factory.geometry.dup
    end
def parse(kml)
      @factory.reset
      @with_z = false
      @parser = REXML::Parsers::PullParser.new(kml)
      while @parser.has_next?
        e = @parser.pull
        if e.start_element?
          if (type = ELEMENT_MAP[e[0]])
            @factory.begin_geometry(type)
          else
            @buffer = '' if (e[0] == 'coordinates') 
            accumulate_start(e)
          end
        elsif e.end_element?
          if ELEMENT_MAP[e[0]]
            @factory.end_geometry(@with_z)
            @buffer = '' 
          else
            accumulate_end(e)
            if (e[0] == 'coordinates')
              parse_coordinates(@buffer)
              @buffer = '' 
            end
          end
        elsif e.text?
          accumulate_text(e)
        elsif e.cdata?
          accumulate_cdata(e)
        end
      end
      @factory.geometry.dup
    end
def parse ( kml ) @factory . reset @with_z = false @parser = REXML :: Parsers :: PullParser . new ( kml ) while @parser . has_next? e = @parser . pull if e . start_element? if ( type = ELEMENT_MAP [ e [ 0 ] ] ) @factory . begin_geometry ( type ) else @buffer = '' if ( e [ 0 ] == 'coordinates' ) # clear the buffer accumulate_start ( e ) end elsif e . end_element? if ELEMENT_MAP [ e [ 0 ] ] @factory . end_geometry ( @with_z ) @buffer = '' # clear the buffer else accumulate_end ( e ) if ( e [ 0 ] == 'coordinates' ) parse_coordinates ( @buffer ) @buffer = '' # clear the buffer end end elsif e . text? accumulate_text ( e ) elsif e . cdata? accumulate_cdata ( e ) end end @factory . geometry . dup end
argument should be a valid kml geometry fragment ie. <Point> .... </Point>
 returns the GeoRuby geometry object back
argument should be a valid kml geometry fragment ie . <Point > .... < / Point > returns the GeoRuby geometry object back