Hi Stuart,

Am I correct in inferring that you're not storing geospatial indexes
persistently at all, then? This seems impractical for the App Engine
architecture, and for the scale it is intended to support.

-Nick Johnson

On Fri, Jul 10, 2009 at 5:29 PM, Stuart Moffatt<[email protected]> wrote:
> Nick,
>
> First, there was a typo in my announcement that I just realized. The second
> last paragraph should state that the "current version of the application
> does NOT demonstrate use of the datastore", that is, I am still in the
> process of implementing fetches of WKT from my entities, but that's the
> plan.
>
> As to your questions:
>
> 1) JTS indexes. From their technical spec: "There is a large literature of
> efficient algorithms for intersection detection. Unfortunately, many of them
> involve substantial code complexity. JTS tries to balance code simplicity
> with performance gains. It uses some special techniques to produce
> substantial performance gains for common types of input data. These
> techniques include in-memory spatial indexes of various types, and
> sophisticated methods for structuring data such as the technique of Monotone
> Chains." (See
> http://www.vividsolutions.com/jts/bin/JTS%20Technical%20Specs.pdf).
>
> 2) I am using brute force (ie CPU) to do point-in-polygon and
> polygon-in-polygon in this version of the app, so I am letting JTS worry
> about managing its own in-memory indexes. Nothing fancy built on top of
> AppEngine (yet), but I will be looking at App Engine indexes and perhaps
> blobs.
>
> Stuart
>
> On Fri, Jul 10, 2009 at 7:21 AM, Nick Johnson (Google)
> <[email protected]> wrote:
>>
>> Hi Stuart,
>>
>> Very nice!
>>
>> Out of curiosity, what indexing scheme does JTS use? Are you building
>> an R-Tree or other tree based structure on top of the datastore, or
>> are you using a hilbert-curve type approach?
>>
>> -Nick Johnson
>>
>> On Fri, Jul 10, 2009 at 8:03 AM, Stuart Moffatt<[email protected]>
>> wrote:
>> >
>> > Announcement:
>> >
>> > The GIS in the Cloud (App Engine + JTS) reference project is now
>> > available at http://giscloud.appspot.com with the source code
>> > available at http://giscloud.googlecode.com (documentation
>> > forthcoming).
>> >
>> > While many GIS/spatial App Engine discussions center on the python SDK
>> > (with pre-computing grids or geocells and heavy lifting done with set
>> > membership in the datastore), this reference project uses the Java
>> > Topology Suite (http://www.vividsolutions.com/jts/jtshome.htm) within
>> > the App Engine server to demonstrate point-in-polygon and polygon-in-
>> > polygon spatial queries.
>> >
>> > The GIS in the Cloud app is pure Java and was built with
>> >
>> > * Google App Engine SDK for Java
>> > * Google Plugin for Eclipse
>> > * Google Web Toolkit
>> > * Google Web Toolkit API Libraries - Google Maps 1.0 Library
>> > * Java Topology Suite
>> >
>> > The Java Topology Suite was ported to C++ and became GEOS, which was
>> > embedded in PostgreSQL to become PostGIS, allowing users access to
>> > spatial functions within SQL. While App Engine does not give us
>> > spatial functions in GQL, the GIS in the Cloud app will demonstrate a
>> > GQL/JTS combination to accomplish the same effect.
>> >
>> > The current version of the application does demonstrate use of the
>> > datastore (TODO), but it does employ JTS to query point-in-polygon and
>> > polygon-in-polygon. Single clicks on the map trigger the point-in-
>> > polygon test (the point is the map center and the polygon is Salt Lake
>> > County). With zoom or drag, the polygon-in-polygon test is triggered.
>> > The first polygon is the map bounds and the second is Salt Lake
>> > County.
>> >
>> > Future versions will use the datastore and be able to access OGC Well
>> > Known Text (WKT) from which geometry can be created for features such
>> > as: tracts, census block groups, census blocks, and parcels.
>> >
>> >
>> >
>> >
>> >
>> >
>> >
>> > >
>> >
>>
>>
>>
>> --
>> Nick Johnson, App Engine Developer Programs Engineer
>> Google Ireland Ltd. :: Registered in Dublin, Ireland, Registration
>> Number: 368047
>>
>>
>
>
> >
>



-- 
Nick Johnson, App Engine Developer Programs Engineer
Google Ireland Ltd. :: Registered in Dublin, Ireland, Registration
Number: 368047

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Google App Engine" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.com/group/google-appengine?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to