免费SDK用于转弯导航

时间:2011-12-18 23:49:42

标签: android sdk navigation maps

我正在寻找一个免费的SDK,它提供了转向导航以集成到移动应用程序中。有人知道吗?我需要一个与android一起工作或者有一个javascript api所以我可以使用PhoneGap或Titanium。

提前致谢。

3 个答案:

答案 0 :(得分:2)

MapQuest提供了一系列可用的免费服务和SDK。它们包括方向和许多其他导航功能。

从我所看到的情况来看,他们是最好的,对您在申请或网络上的使用没有任何限制。

查看here

更新(基于评论):

有几个,这取决于你想要做什么,这将使一个比另一个更好。一些最好的是Google和Bind,但我认为他们都对你如何使用它们有限制(在免费使用场景中,我不知道你愿意做什么)。我不会链接到那些,它们很容易找到。

我看过OpenRouteService,但我喜欢MapQuest。可编程网络列出了很多,并且可以很好地跟上那里的内容。如果您查看mapping category,您会发现一些可能符合您需求的服务。

您可能希望从不同的提供商中提取不同的部分。如果您能够遵守限制,Google就是一站式服务。

祝你好运!

答案 1 :(得分:0)

Mapbox有一个Android的SKD:https://www.mapbox.com/blog/mapbox-android/

这也是Titanium on Titanium项目https://github.com/adampax/titanium-mapbox,在撰写本文时,该项目得到维护和发展。

另一种选择是Skobbler / Telenav,它也有Android SDK:

http://developer.skobbler.com/features#mobileDevicesAndWeb

可以从here

下载

我知道他们也有一个javascript库,但我不确定这是否有效/它如何与Titanium或PhoneGap一起使用。 (如果你发现:)请在评论中告诉我。)

答案 2 :(得分:-3)

一个非常古老的问题,但它可能对某人有所帮助。 Mapbox最近推出了一个新的Android方向库,提供逐向导航。它是免费的。

使用路线库非常简单。 只需将以下内容添加到 build.gradle 即可开始使用

repositories {
  mavenCentral()
}

dependencies {
    compile ('com.mapbox.mapboxsdk:mapbox-android-directions:1.0.0@aar'){
        transitive=true
    }
}

要获取两个地理位置点之间的路线,请使用以下代码

// Downtown LA
Waypoint origin = new Waypoint(-118.24233, 34.05332);

// Santa Monica Pier
Waypoint destination = new Waypoint(-118.49666, 34.01114);

// Build the client object
MapboxDirections client = new MapboxDirections.Builder()
    .setAccessToken(MAPBOX_ACCESS_TOKEN)
    .setOrigin(origin)
    .setDestination(destination)
    .setProfile(DirectionsCriteria.PROFILE_DRIVING)
    .build();

// Execute the request
Response<DirectionsResponse> response = client.execute();

DirectionsRoute route = response.body().getRoutes().get(0);
int distance = route.getDistance() // 26446 (in meters)

要在Mapbox地图上绘制路线,请执行以下操作:

// Convert List<Waypoint> into LatLng[]
List<Waypoint> waypoints = route.getGeometry().getWaypoints();
LatLng[] points = new LatLng[waypoints.size()];
for (int i = 0; i < waypoints.size(); i++) {
    points[i] = new LatLng(
        waypoints.get(i).getLatitude(),
        waypoints.get(i).getLongitude());
}

// Draw Points on MapView
mapView.addPolyline(new PolylineOptions()
    .add(points)
    .color(Color.parseColor("#3887be"))
    .width(5));

请检查一下:

https://www.mapbox.com/blog/android-directions-library/