[ 
https://issues.apache.org/jira/browse/LUCENE-7936?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16138247#comment-16138247
 ] 

Ignacio Vera commented on LUCENE-7936:
--------------------------------------

Ok I will wait until you are ready, it looking promising. I like what I see in 
the patch but I would like to have a thought about how we are using GeoPoint. 
My point is the following:

There are basically two type of Objects for building shapes:

GeoShape components: Everything that is extending the Vector class, GeoPoint 
and Planes. These do not need to be serialized.
Geoshape objects: Everything that  implements PlanetObject and hence extends 
GeoBasePanetObject. The interface PlanetObject should be implementing the 
SerializeObject.

There should be no Geoshape extending GeoPoint as that is like trying to build 
a shape by extending a Plane. A GeoShapePoint object should be a GeoShapeObject 
with one component, being that component a GeoPoint.

In addition, your  static methods to support serialization/deserialization  
should live in GeoBasePanetObject. Then you can have them protected in the 
package.

Cheers,

I.




> Extend Geoshape interfaces so objects can be copied/serialized
> --------------------------------------------------------------
>
>                 Key: LUCENE-7936
>                 URL: https://issues.apache.org/jira/browse/LUCENE-7936
>             Project: Lucene - Core
>          Issue Type: Improvement
>          Components: modules/spatial3d
>            Reporter: Ignacio Vera
>            Assignee: Karl Wright
>         Attachments: GeoBinaryCodec.patch, LUCENE-7936.patch, 
> LUCENE-7936.patch, Spatial4j.patch
>
>
> Hi [~david.wri...@bksv.com],
> I would like to propose to extends the GeoShape interfaces to be able to 
> copy/serialized the objects. The current status and  propose change is as 
> following:
> GeoPoint: It can be serialized by using x, y, z
> GeoCircle:  It can be serialized by using getCenter() and getRadius() and 
> getPlanetModel()
> GeoCompositeShape: It can be serialized by accesing shapes using size() and 
> GetShape(int index)
> GeoPath: add methods to the interface getPoints() and getCutoffAngle()
> GeoPolygon: This is the most complicated one as we have different types:
>    1.- GeoCompositePolygon is just a composite
>    2.- GeoConcavePolygon and GeoConvexPolygon: Create a new interface for 
> those polygons which exposes the points, holes, internaledges and 
> concavity/convexity
>    3.- GeoComplexPolygons: Do nothing, they are too complex to be serialize??
> I am intersested in accesing the discreatization of the polygons into convex 
> and concave ones for other reasons as well. I think this should be expose as 
> they end result can be used for other use cases.
> Cheers,
> I.
>   



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@lucene.apache.org
For additional commands, e-mail: dev-h...@lucene.apache.org

Reply via email to