locationtech / locationtech/geomesa

FSDS - Handle WMS Layer Preview LonLat out of bounds

Open
#9,247 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Scala
Stars
1.5k
Forks
446
Avg merge
1d 8h
Merged PRs (30d)
31

Description

FSDS - Handle WMS Layer Preview LonLat out of bounds

In the GS layer preview you get Lon=261 when you click a point which throws an exception:
Caused by: java.lang.IllegalArgumentException: requirement failed: Range bounds must be ordered, but 3 > 0 at org.locationtech.sfcurve.zorder.ZRange.(ZRange.scala:20) at org.locationtech.geomesa.curve.Z2SFC$$anonfun$1.apply(Z2SFC.scala:41) at org.locationtech.geomesa.curve.Z2SFC$$anonfun$1.apply(Z2SFC.scala:41) at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:245) at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:245) at scala.collection.immutable.List.foreach(List.scala:381) at scala.collection.TraversableLike$class.map(TraversableLike.scala:245) at scala.collection.immutable.List.map(List.scala:285) at org.locationtech.geomesa.curve.Z2SFC.ranges(Z2SFC.scala:41) at org.locationtech.geomesa.fs.storage.common.Z2Scheme.getCoveringPartitions(PartitionScheme.scala:280) at org.locationtech.geomesa.fs.storage.common.CompositeScheme$$anonfun$getCoveringPartitions$3.apply(PartitionScheme.scala:318) at org.locationtech.geomesa.fs.storage.common.CompositeScheme$$anonfun$getCoveringPartitions$3.apply(PartitionScheme.scala:318)
To reproduce ingest sample example csv from tools in /tmp, load in GS as a store, then click a point that is outside the normal -180,180 window for Lon. Chris Eichelberger may have some knowledge bc he might have fixed it for accumulo


Original JIRA Issue: https://geomesa.atlassian.net/browse/GEOMESA-1952

Key: GEOMESA-1952
Type: Bug
Priority: Major
Status: To Do
Resolution: Unresolved
Reporter: Andrew Hulbert
Created: Thu, 20 Jul 2017 10:09:19 -0400
Updated: Thu, 13 Dec 2018 14:50:23 -0500
Parent: GEOMESA-1905


Related Issues:

  • Relates (is depended on by): GEOMESA-1705

Comments:

557058:85267d80-736b-42c9-898c-3b6267da6a7f (Thu, 20 Jul 2017 13:51:03 -0400):

here was the fix: https://github.com/locationtech/geomesa/commit/90b0b70329cff63b77273e6c6571a3eb4ec8ddc0
Probably running the query through the QueryPlanFilterVisitor will fix the issue:
filter.accept(new BindingFilterVisitor(sft), null).asInstanceOf[Filter] .accept(new QueryPlanFilterVisitor(sft), null).asInstanceOf[Filter]

557058:85267d80-736b-42c9-898c-3b6267da6a7f (Thu, 20 Jul 2017 13:52:30 -0400):

I think the fix discards the bbox instead of translating it, if that matters...

557058:da7f6dfa-f0a1-468b-aec5-2cb61273feb5 (Thu, 13 Dec 2018 13:41:36 -0500):

Verified this still affects 2.1

557058:3bdf14b8-308b-42a1-93b4-2ee86eacfbc7 (Thu, 13 Dec 2018 14:50:23 -0500):

wow really digging into the icebox!

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with the WMS layer preview path and inspect Z2SFC.ranges at Z2SFC.scala:41, then follow Z2Scheme.getCoveringPartitions in PartitionScheme.scala:280. Review the linked commit and the suggested BindingFilterVisitor and QueryPlanFilterVisitor flow. Reproduce with the sample CSV and an out-of-range longitude such as 261; done means the preview no longer throws the range-bounds exception.

Written by the indexing model from the issue text.

Assessment

Tech stack
scala
Domain
backend
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
48/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.