33
44module GeoScript
55 class Feature
6- def initialize ( attrs = nil , id = nil , schema = nil )
6+ def initialize ( attrs = nil , id = nil , schema = nil )
77 raise 'No attributes specified for feature' unless attrs
8-
8+
99 unless attrs . kind_of? GeoScript ::Feature
1010 unless schema
1111 if attrs . instance_of? Hash
1212 schema_attrs = [ ]
1313 attrs . each do |k , v |
14- schema_attrs << { name : k , type : v . to_java . java_class }
14+ schema_attrs << { name : k . to_s , type : v . to_java . java_class }
1515 end
1616 @schema = GeoScript ::Schema . new ( 'feature' , schema_attrs )
1717 elsif attrs . instance_of? Array
@@ -28,7 +28,7 @@ def initialize(attrs = nil, id = nil, schema = nil)
2828 end
2929
3030 sfb = SimpleFeatureBuilder . new @schema . feature_type
31- attrs . each { |k , v | sfb . set ( k , v ) }
31+ attrs . each { |k , v | sfb . set ( k . to_s , v ) }
3232 @feature = sfb . build_feature id
3333 else
3434 @feature = attrs
@@ -40,12 +40,24 @@ def id
4040 @feature . identifier . to_s
4141 end
4242
43- def geom
43+ def get_geom
4444 @feature . default_geometry
4545 end
46+ alias_method :geom , :get_geom
4647
4748 def set_geom ( geom )
4849 @feature . default_geometry = geom
4950 end
51+
52+ def get_attributes
53+ attributes = { }
54+
55+ @schema . fields . each do |field |
56+ attributes [ field ] = @feature . get_attribute ( field )
57+ end
58+
59+ attributes
60+ end
61+ alias_method :attributes , :get_attributes
5062 end
51- end
63+ end
0 commit comments