我想使用提供路线的地图制作Android应用,但不能使用Google地图

我想制作一个Android应用程序,加载我在build筑物内部创build的地图。 我希望它提供一个房间之间的方向。 如果可能,在楼层之间。

我希望地图可以缩放,也可以点击。 即你可以点击你所在的位置,以及你想去的地方,应用程序将提供方向。 或者你在文本框中input你所在的房间,你想去的地方,然后再提供方向。

我偶然发现了一些让你使用开源地图的东西,并将你自己的节点添加到每个angular落或参考地。 但经过一小时的Googlesearch,我再也找不到这个网站了。

有没有人有任何想法我可以做到这一点?

Solutions Collecting From Web of "我想使用提供路线的地图制作Android应用,但不能使用Google地图"

这是其中一个想法听起来很简单但实际上不是这样的例子之一。 有很多任务需要解决,有些已经提到。

1)如何build模办公室。 这需要完成,以便于您build模,但文件很小。 它必须是你的path寻找algorithm可以理解的格式。 这意味着当您开发path查找时,您将对数据进行更改。

2)定位/input。 由硬件完成(GPS不会削减)或用户说,他们在哪里。 可以使用NFC和标签放置在办公室周围,而不是一个理想的解决scheme,标签必须是可见的。 用户可以input他们的位置,但他们可能会丢失,不知道他们在哪里。

3)如何呈现数据,你可以写一个神奇的3D应用程序,显示一个任务不可能的build筑布局。 这将是六个月的工作在它自我! 记住,你的地图是3D的,路线图往往是二维的。 (有些飞过…)

4)进度跟踪。 该应用程序真的需要知道你是如何做,所以如果你走的路线,它会告诉你回去。 这在室内将很难实现。 进度跟踪是PND(个人导航设备)制造商花费时间的一个领域,因为它确实影响用户对软件的信心。

在TomTom工作,我只能说你可以在这个多年。

因为这是一个拼贴项目,我可以build议一个更简单的项目?

用2D地图,简单的基于网格的地图,有点像迷宫问题中的经典鼠标。 实现A *path查找。 一旦完成,你可以如果你有时间扩展它的原始计划。

我过去发现的一本很好的书是“通过示例编程游戏AI”。 ISBN 1-55622-078-2。 第8章是关于path查找的,并且在A *上有一个很好的部分。

祝你好运。 🙂

虽然这可能不是你正在寻找的答案:

你总是可以写一个这样的应用程序。 如果您已经愿意将节点放置在地图上,则可以假设编写一个使用(主要使用的)游戏pathalgorithm(如A *)的程序,并从中找出路线。 这将是棘手的,但我会认为,通过放置节点和向量映射它们与vector相关的成本(可能以英尺/米或类似的东西测量),你可能可以用A *来设置它。 ..

很难说。 我试了一下Google,然后空了。

您可以创build一个MapActivity ,然后可以放置一个MapView ( MapView不能embedded任何其他Activity ),这是一个诚实善良的交互式地图,但它不完整。

MapView主要是为了显示一个特定区域的地图,并在其上定制覆盖。 您可以设置地图的焦点,缩放级别(如果显示stream量数据)以及其他一些次要选项。 但除此之外,你必须构build你自己的路线覆盖。 而且没有任何转弯方向function或任何东西。 他们只是“哑”覆盖。

不过,Google DID最近更新了Google地图应用,以包含室内地图和导航。 他们提供了一个网站,你可以去提交你的build筑平面图 ,所以它可以添加到官方的应用程序。

一旦你的平面图被正式添加,你可以启动官方的应用程序来做你的导航为你使用这样的意图:

Intent intent = new Intent(android.content.Intent.ACTION_VIEW, Uri.parse("http://maps.google.com/maps?saddr=20.344,34.34&daddr=20.5666,45.345")); startActivity(intent); 

在我的硕士项目中,我完全面对同样的问题。 但是,我的解决scheme并不完全,但这是我计划的方式。 由于各种限制,我无法完全实现。 这可能听起来很复杂,但我不确定如何解决这个问题。

  1. 静态存储地图而不是dynamic地存储地图 – 我的意思是,当某人想要从一个房间移到另一个房间或另一个楼层时,popup图片/照片。 dynamic路由有点困难。 手中存有图片,以便它们popup。

  2. devise像Dijkstraalgorithm那样的最短pathalgorithm。 你将得到现成的java程序来执行这个algorithm。 使用这个,你可以获得路线。 一旦地图可用,使其可点击并添加缩放选项应该不成问题。

以某种方式结合两个步骤(对不起,这里没有代码,因为我自己不能拿出一个)。 正如理查德上面说的,我在我脑海中实现了NFC(我的整个项目都是基于这个)。 NFC基本上是RFID技术,因此是无线的。 您可以使用802.11 b / g / n来实现networking的一面。 如果您需要更多的帮助,请告诉我。 将有助于我能做多less事。

祝一切顺利。