Comments (7)
Also...
1.9.2p318 :002 > require "rgeo"
=> true
1.9.2p318 :003 > RGeo::CoordSys::Proj4.supported?
=> true
1.9.2p318 :004 > RGeo::Geos.supported?
=> true
from rgeo.
Also....
1.9.3p125 :007 > Cable.limit(10).last.wkb_geometry.distance(Cable.first.wkb_geometry)
RGeo::Error::UnsupportedOperation: Method Geometry#distance not defined.
from /home/cfrugard/.rvm/gems/ruby-1.9.3-p125/gems/rgeo-0.3.8/lib/rgeo/feature/geometry.rb:483:in distance' from (irb):7 from /home/cfrugard/.rvm/rubies/ruby-1.9.3-p125/bin/irb:16:in
from rgeo.
also seeing the issue in ree 1.8.7
from rgeo.
The problem is, when you use the spherical_factory, a bunch of operations are not implemented. The spherical factory uses spherical geometry to do computations, and the math there can get very complicated. (GEOS, for example, does not provide spherical operations-- it does only planar operations.) Most of the fancy spatial operations are available only in Cartesian coordinate systems.
Now, some operations could get implemented. I'm assuming your geometries are LineStrings. LineString length is not hard to implement on the sphere, and I possibly could get that in place for you. However, the distance between two LineStrings is very complex on a sphere, so unless someone smarter than me feels the urge to help with the nonlinear computational geometry (or I can find a suitable C library), I don't know if that's going to be available.
from rgeo.
They are linestrings. Would this also be the case with points? Most of my
use cases are for small distances, so planar won't kill me, either way.
On Tuesday, March 27, 2012, Daniel Azuma <
[email protected]>
wrote:
The problem is, when you use the spherical_factory, a bunch of operations
are not implemented. The spherical factory uses spherical geometry to do
computations, and the math there can get very complicated. (GEOS, for
example, does not provide spherical operations-- it does only planar
operations.) Most of the fancy spatial operations are available only in
Cartesian coordinate systems.Now, some operations could get implemented. I'm assuming your
geometries are LineStrings. LineString length is not hard to implement on
the sphere, and I possibly could get that in place for you. However, the
distance between two LineStrings is very complex on a sphere, so unless
someone smarter than me feels the urge to help with the nonlinear
computational geometry (or I can find a suitable C library), I don't know
if that's going to be available.
Reply to this email directly or view it on GitHub:
#24 (comment)
from rgeo.
spherical_factory does currently implement distance if both sides are points.
Alternatively, if your objects are small, you could project into a planar coordinate system and do the calculations there, but then you'd have to transform (undistort) your distances.
I'll put it on the to-do list to implement LineString#length for spherical_factory, since that should be easy.
from rgeo.
LineString#length is implemented in the spherical_factory as of version 0.3.9. Closing.
from rgeo.
Related Issues (20)
- Set Precision for Coordinates HOT 4
- Create Documentation for Adding GEOS Functions to CAPI and FFI Implementations
- C Styleguide
- uby HOT 1
- CAPI stress test under low memory
- Polygon centroid has different SRID
- Concurrency problems with single app-wide factory? HOT 1
- rgeo 3 geom freeze behaviour HOT 3
- Expand classes in `CoordSys` module HOT 1
- Proj Rework: Clean up Core Gem
- Geos not supported HOT 3
- Tackle rubocop todo list HOT 4
- Geos not supported HOT 7
- `test_invalid_polygon_duplicate_rings` test is failing HOT 3
- Add Supported Geos Versions to CI
- `make_valid` throwing errors HOT 1
- RGeo::Error::InvalidGeometry: Unable to cast the geometry to the GEOS Factory HOT 3
- With geos 3.12, the CAPI factory enables Z geometries HOT 6
- RGeo::Geos.supported? false with GEOS 3.12 on Amazon Linux 2023 HOT 21
- `ENVELOPE` method on linestring does not return `POLYGON` HOT 5
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from rgeo.