我将使用Android工作室开发室内导航应用程序" Hipster" library.Hipster为搜索和最短路径计算提供了几种算法。在我的例子中,它是Dijkstra的最短路径算法。
在Hipster中,他们提到了,"这是纯Java库"。 我在Eclipse中使用这个库,它工作正常。
我的问题是,
我是Android和Android Studio的新手我试图在Android Studio中实现此代码,但它似乎无法正常工作。我使用了图书馆作者提供的样本。
我使用了Gradle依赖
implementation 'es.usc.citius.hipster:hipster-core:1.0.1'
官方网站 - http://www.hipster4j.org/
Github - https://github.com/citiususc/hipster
我使用了这个示例:
我把这行显示在我的Android应用程序上,而不是System.out.print。
Toast.makeText(getApplicationContext(), Hipster.createDijkstra(p).search('L'),Toast.LENGTH_LONG).show();
但是此行突出显示,当我悬停鼠标指针时,Android Studio会说
Cannot resolve method 'makeText(android.content.Context, es.usc.citius.hipster.algorithm.Algorithm.SearchResult, int)
这是我的MainActivity.java
package com.example.ireshan.indoor_navigation;
import android.content.Context;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.widget.TextView;
import android.widget.Toast;
import java.util.Collections;
import java.util.HashMap;
import java.util.Map;
import es.usc.citius.hipster.algorithm.Hipster;
import es.usc.citius.hipster.algorithm.Algorithm;
import es.usc.citius.hipster.graph.GraphBuilder;
import es.usc.citius.hipster.graph.GraphSearchProblem;
import es.usc.citius.hipster.graph.HipsterDirectedGraph;
import es.usc.citius.hipster.graph.HipsterGraph;
import es.usc.citius.hipster.model.problem.SearchProblem;
public class Find_Shortst_Path extends AppCompatActivity {
Context context = getApplicationContext();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_find__shortst__path);
TextView helloTextView = (TextView)findViewById(R.id.myTextView);
HipsterGraph<String,Double> graph =
GraphBuilder.<String,Double>create()
.connect("A").to("B").withEdge(2d)
.connect("A").to("C").withEdge(2d)
.connect("A").to("D").withEdge(2d)
.connect("B").to("E").withEdge(5d)
.connect("B").to("F").withEdge(10d)
.connect("B").to("G").withEdge(5d)
.connect("B").to("H").withEdge(10d)
.connect("C").to("I").withEdge(5d)
.connect("C").to("J").withEdge(10d)
.connect("C").to("K").withEdge(5d)
.connect("K").to("L").withEdge(5d)
.createUndirectedGraph();
SearchProblem p = GraphSearchProblem
.startingFrom("A")
.in(graph)
.takeCostsFromEdges()
.build();
//Toast.makeText(context, Hipster.createDijkstra(p).search('L').toString(),Toast.LENGTH_LONG).show();
helloTextView.setText(String.valueOf(Hipster.createDijkstra(p).search('L')));
}
}
我该如何解决这个问题?我将找到购物中心活动的最短路径,例如找到一些项目并使用最短路径到达它。如果您知道任何其他替代方式,它将对我有所帮助。
答案 0 :(得分:0)
我确定了,
Hipster.createDijkstra(p).search("L").getOptimalPaths();
当我使用时,输出是一个列表
.getOptimalPaths();. // Dijkstra's algorithms out put as shortest path
我的目标是获得最佳路径而不是
所产生的整个输出 Hipster.createDijkstra(p).search("L")
然后我将输出插入&#34; List&#34;
List ab= Hipster.createDijkstra(p).search("L").getOptimalPaths();
helloTextView.setText(ab.get(0).toString());
我将输出发送到TextViwe。它在Andoid
上工作正常使用此依赖
implementation 'es.usc.citius.hipster:hipster-core:1.0.1'