http://www.savarese.com/software/libssrckdtree-j/をJrubyファイル内で実行しようとしています。jruby Javaライブラリを追加する
私のコードは次のようなものになります。私はこのコードを実行すると
require 'java'
require 'libssrckdtree-j-1.0.2.jar'
GenericPoint = Java::com.savarese.spatial.GenericPoint
KDTree = Java::com.savarese.spatial.KDTree
NearestNeighbors = Java::com.savarese.spatial.NearestNeighbors
tree = KDTree.new
def generate_points(tree, size)
size.times do
x = rand(100)
y = rand(100)
point = GenericPoint.new(x, y)
tree.put(point, point.to_s)
end
end
generate_points(tree, 20000)
nearest = NearestNeighbors.new()
point = [1,1]
nearest.get(tree, point, 1, false)
は、しかし、私は
NameError: no method 'get' for arguments (com.savarese.spatial.KDTree,org.jruby.RubyArray,org.jruby.RubyFixnum,org.jruby.RubyBoolean) on Java::ComSavareseSpatial::NearestNeighbors
(root) at kdjava.rb:25
取得私はgetを使用すると言うライブラリのドキュメントとして取得いけない、と私KDtreeのために木の上に置くことを使用し、それは働いた。
私がしようとしているのは、このライブラリを使用してkdツリーに一連のlat lngを構築し、別のlat lngをクエリしてKDツリー内の最も近い隣を見ることです。
私はRubyでも大丈夫ですが、私はJavaを吸っています。私はこれらのより高速なライブラリを利用するためにJrubyを使用しています。
* "これまでのところ私のコードは次のように見える:" * "私たちはこの曲を手に入れたが、このような小さなものになる"とは、酔っているブルースのプレイヤーにとっては良いリードであるかもしれない。テクニカルフォーラムで多くの回答を得ることができます。より良い結果を得るためには、「[SSCCE](http://sscce.org/)はこのように正確に読み取られます」と置き換えてください。 ..ブルースクラブのために、別のブルボンを沈めて、Eフラットに行ってください。 –
touche - 公平なコメント –