Thursday, 2 August 2018

JTS 1.15.1 and XYZM development

One of the things I have been working on with the LocationTech crew is the JTS Topology Suite project with a recent release of JTS 1.15.1 and looking into XYZM coordinate support.

JTS logo

JTS 1.15.1 upgrades for everyone

We have had an exciting couple of months with Jim Hughes and myself taking a code-sprint to:

JTS XYZM coordinates

The other bit of RnD I have been working has been Explicit support for XYZM coordinates. Previously this has been left as an exercise for the reader, designed for in the API but something for downstream applications to figure out. The motivation to address this in JTS is to support a WKTReader / WKT Writer enhancements Felix Obermaier has been working on, but now that it has started a wide range of projects have expressed interest.


The design trade off is between treating JTS Coordinate as a data object, managed in arrays and created and deleted as required. JTS itself only makes use of coordinate.x and coordinate.y fields (which are public as befitting a data structure).

Here is what adding XYZM support looks like for Coordinate:

Methods have beed added for getX(), getY(), getZ() and getM() - and the methods return NaN for anything they do not support.


The cloud projects at LocationTech, such as GeoMesa, run into a bit of trouble with this approach as creating and deleting Coordinate constantly during processing causes a lot of memory pressure.

The alternative provided by JTS is to manage information as a CoordinateSequence, such as Packed CoordinateSequence which is backed by an array of doubles. There is lots of room for JTS to improve in this area and we have watched downstream projects come up with all kinds of fascinating CoordinateSequence implementations we can learn from.

Here is what adding XYZM support looks like for CoordinateSequence:

The key addition here is clarifying the definition of dimension (the number of ordinates in each coordinate) and adding measures (the number of measures included in dimension for each coordinate). For for XY data dimension is 2 and measures is 0. For XYZM data dimension is 4 and measures is 1.

JTS Topology Suite at FOSS4G 2018

If you are interested in hearing more about JTS Topology Suite join Rob Emanuele and myself at FOSS4G 2018 later this month for State of JTS 2018


Aruna Ram said...

Wonderful ideas! You are providing the different kinds of content is very useful for me and I gain more details from your article. I am always following your blog and keep posting...
Spark Training in Chennai
Spark Training
Embedded System Course Chennai
Linux Training in Chennai
Social Media Marketing Courses in Chennai
Power BI Training in Chennai
Tableau Training in Chennai
Oracle DBA Training in Chennai

yuva rani said...

Great info. The content you wrote is very interesting to read. This will loved by all age groups.
ReactJS Training in Chennai
ReactJS Training
ReactJS course
ccna Training in Chennai
Salesforce Training in Chennai
Angularjs Training in Chennai

ProPlus Logics said...

Hey Nice Blog!! Thanks For Sharing!!!Wonderful blog & good post.Its really helpful for me, waiting for a more new post. Keep Blogging!
SEO company in coimbatore
Digital Marketing Company in Coimbatore
SEO Services in coimbatore

Vicky Ram said...

Great articles, first of all Thanks for writing such lovely Post!

Guest posting sites

jenifer irene said...

This is really a valuable post... The info shared is helpful and valuable. Thank you for sharing.
Aviation Academy in Chennai
Air hostess training in Chennai
Airport management courses in Chennai
Ground staff training in Chennai
aviation training in Chennai
air hostess academy in Chennai
Airline Courses in Chennai
Ground staff training in Chennai

Prakash said...

Awesome Post!!! Thanks for sharing this great post with us.
JAVA Training in Chennai
java class
Best JAVA Training in Chennai
JAVA Training in Tnagar
java training in Thiruvanmiyur
Big data training in chennai
Software testing training in chennai
Android Training in Chennai
Selenium Training in Chennai
Python Training in Chennai

Banu Ravi said...

Awesome blog with lots of information. It is really helpful for all.
AngularJS Training in Chennai
AngularJS course in Chennai
Angular 6 Training in Chennai
ReactJS Training in Chennai
PHP Training in Chennai
Web Designing course in Chennai
Tally course in Chennai
AngularJS Training in Velachery
AngularJS Training in T Nagar
AngularJS Training in OMR

Riya Raj said...

Good blog!!! It is more impressive... thanks for sharing with us...
Selenium Training in Chennai
Selenium Course in Chennai
selenium course
Selenium Training Institute in Chennai
Selenium training in Guindy
Selenium Training in Tambaram
Python Training in Chennai
Big data training in chennai
SEO training in chennai
JAVA Training in Chennai

james john said...

I think this is an informative post and it is very useful and knowledgeable. therefore, I would like to thank you for the efforts you have made in writing this article.
website designing company pakistan

Unknown said...

Kasus Pencabulan
Dukun Cabuli Anak SMA
Pengetahuan Wanita
Kata Janda
Prediksi Janda
Janda Slots
menang selalu
redaksi halo
daftar halototo
daftar togel online
daftar togel
halototo wap
togel hongkong

Shawn David said...

Since working with a graphic design services company, I am sure that such maps making will be much helpful for me to do things well for my website and make it more interesting.

halototo said...

Kasus Pencabulan
Pengetahuan Wanita
poker online
Prediksi Janda
Janda Slots
menang selalu
redaksi halo
daftar togel
halototo wap
daftar dominohalo

Reshma said...

The blog is very informative.Keep posting like this.
Best training institute in chennai

Vijayakash said...

Excellent blog with lots of information. I have to thank for this. Do share more.

German Classes In Bangalore

Vale Co Xenia said...

Great Article
B.Tech Final Year Projects for CSE in Angular

Angular Training in Chennai

Project Centers in Chennai

JavaScript Training in Chennai

Riya Raj said...

The blog which you have posted is more impressive... thanks for sharing with us...
Selenium Training in Chennai
Selenium Training
selenium testing course in chennai
Best selenium Training Institute in Chennai
Selenium training in vadapalani
Selenium training in porur
Python Training in Chennai
Hadoop Training in Chennai
Big data training in chennai
JAVA Training in Chennai

Insight Communication & Design said...

Outstanding in addition to effective suggestion by the author of this blog are genuinely sensible to me. Web Designs Perth