- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我使用 OSM 创建了一个简单的项目。 map 显示了我的当前位置。现在我想创建一个从我当前位置到 map 上特定点的导航。我正在尝试关注 this tutorial .
在 Polyline roadOverlay = RoadManager.buildRoadOverlay(road, this); 行中,我收到类似
的错误Type mismatch: cannot convert from PathOverlay to Polyline
我在项目中使用了以下库:
1. osmdroid-android-4.1.jar
2. osmbonuspack_3.0.jar
3. slf4j-android-1.5.8.jar
这是MainActivity:
import java.util.ArrayList;
import org.osmdroid.DefaultResourceProxyImpl;
import org.osmdroid.ResourceProxy;
import org.osmdroid.api.Polyline;
import org.osmdroid.bonuspack.routing.OSRMRoadManager;
import org.osmdroid.bonuspack.routing.Road;
import org.osmdroid.bonuspack.routing.RoadManager;
import org.osmdroid.tileprovider.tilesource.TileSourceFactory;
import org.osmdroid.util.GeoPoint;
import org.osmdroid.views.MapView;
import android.app.Activity;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
import android.view.Menu;
public class MainActivity extends Activity {
MyItemizedOverlay myItemizedOverlay = null;
double latitude;
double longitude;
// The MapView variable:
private MapView m_mapView;
GeoPoint startPoint;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
GPSTracker tracker = new GPSTracker(this);
if (tracker.canGetLocation() == false) {
tracker.showSettingsAlert();
} else {
latitude = tracker.getLatitude();
longitude = tracker.getLongitude();
}
// Find the MapView controller in that layout:
m_mapView = (MapView) findViewById(R.id.mapview);
//MapView mapView = new MapView(this, 256); //constructor
m_mapView.setClickable(true);
m_mapView.setBuiltInZoomControls(true);
//setContentView(m_mapView); //displaying the MapView
m_mapView.setTileSource(TileSourceFactory.MAPQUESTOSM);
m_mapView.getController().setZoom(15); //set initial zoom-level, depends on your need
m_mapView.getController().setCenter(new GeoPoint(latitude, longitude));
m_mapView.setUseDataConnection(true);
m_mapView.setMultiTouchControls(true);
Drawable marker = getResources().getDrawable(R.drawable.pin_for_map);
int markerWidth = marker.getIntrinsicWidth();
int markerHeight = marker.getIntrinsicHeight();
marker.setBounds(0, markerHeight, markerWidth, 0);
ResourceProxy resourceProxy = new DefaultResourceProxyImpl(
getApplicationContext());
myItemizedOverlay = new MyItemizedOverlay(marker, resourceProxy);
m_mapView.getOverlays().add(myItemizedOverlay);
GeoPoint myPoint1 = new GeoPoint(latitude, longitude);
myItemizedOverlay.addItem(myPoint1, "myPoint1", "myPoint1");
startPoint = new GeoPoint(latitude, longitude);
}
//For routing
public void osmRoute()
{
//road manager
RoadManager roadManager = new OSRMRoadManager();
//start and end points
ArrayList<GeoPoint> waypoints = new ArrayList<GeoPoint>();
waypoints.add(startPoint);
GeoPoint endPoint = new GeoPoint(48.4, -1.9);
waypoints.add(endPoint);
//etreive the road between those points
Road road = roadManager.getRoad(waypoints);
//build a Polyline with the route shape
Polyline roadOverlay = RoadManager.buildRoadOverlay(road, this);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
}
这是activity_main.xml:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<org.osmdroid.views.MapView
android:id="@+id/mapview"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:enabled="true"
android:clickable="true"
/>
</RelativeLayout>
我哪里错了?我应该怎么做才能完成教程?
最佳答案
除了 kurtzmarc 评论之外,您还没有使用正确版本的 OSMBonusPack:
如果您使用的是 osmdroid-android-4.1.jar,则必须使用 OSMBonusPack v4.2.6 或更高版本。
下载最新版本 (v4.4),不要过时。
关于java - 遵循 osmbonuspack "Hello, Routing World!"教程时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23211909/
我正在编写一个使用离线 map 的 Android 应用程序。为此我正在使用 osmdroid,我遇到了这个 link这是指 osmdroid 的更新 osmbonuspack。除了 openstre
我正在使用 OSMbonuspack创建标记并希望添加带有单独行的描述。但是,普通的换行符 (\n) 不起作用。所以我想知道是否有可能做到这一点。但这似乎是一件很普遍的事情,所以我希望,有可能这样做。
我使用 OSMBonusPach 和 Graphhopper 构建了一条路线。 是否可以用德语显示“路线步骤” 我使用:- 安卓- OSMdroid- OSMBonusPack- Graphhoppe
我正在关注 OSMBonuspack 教程:https://github.com/MKergall/osmbonuspack/wiki/Tutorial_1 当我运行应用程序时,我在 MainActi
我正在使用 KML 在 map 上显示特定区域,您可以单击这些区域并获取一些信息。该应用程序必须脱机工作,因此我在本地使用 KML 文件。 我现在的问题是,当启用显示 KML 区域的叠加层时,应用程序
我发现了 osmbonuspack,但 Wiki 中的 API 信息和文档非常少。 http://code.google.com/p/osmbonuspack/ 我觉得这个库升级osmdroid很有意
我正在尝试用 OSM map 替换我的应用程序中的谷歌地图。我一直在尝试使用 this按照他们如何使用 Jitpack 安装和导入项目。它工作正常。点击标记默认信息气泡(一些浅灰色的)显示。如果我想修
我想解析 geojson 并在 osmbonuspack 和 osmdroid mapview 上查看数据。我使用了这个教程: https://code.google.com/p/osmbonuspa
默认情况下,当我点击气泡时,OsmBonusPack 信息窗口气泡会关闭。 如何禁用默认关闭行为? 最佳答案 创建您自己的信息窗口: MarkerInfoWindow myInfoWindow = n
如何更改当前导航/位置箭头的颜色? 现在当没有 GPX 信息时,会显示一个小人。移动当前位置/导航箭头时为绿色。我希望能够设置另一种颜色。 感谢:多年来我一直怀着感激之情使用 osmdroid/osm
使用漂亮/新的 osmbonuspack 包: 有没有办法立即在 map 上显示标记的名称(或标题)? 因此,无需点击标记。 最佳答案 MKer,感谢您扩展类(class)。 下面,这是我在 map
我使用 OSM 创建了一个简单的项目。 map 显示了我的当前位置。现在我想创建一个从我当前位置到 map 上特定点的导航。我正在尝试关注 this tutorial . 在 Polyline roa
我已经创建了 osmdroid map View ,我在上面显示自定义 WMS,这是可行的。接下来,我需要在我从 GeoJSON 格式的自定义服务获得的 2 个点之间动态绘制这条 map 路线。 Ge
我有一个 GridMarkerClusterer,其中有一些 Marker 代表共享自行车站。我希望这些标记有一个带有点击监听器的自定义 MarkerInfoWindow(气泡),这样当用户点击气泡时
我在 android 中使用 osmdroid 以及 osmdroid 奖励包。我画了一个多边形。现在我想检查 GeoPoint(Latitude, longitude) 是否位于绘制的多边形内。我该
请与新手裸.. 在这里浏览了几篇文章后,它似乎有可能成为 Mapsforge、osmdroid、graphhopper 和 OsmBonusPack 的 chalice ,用于离线路由和转弯导航。 我
我将 osmdroid 与 osmbonuspack 5.5 结合使用。我要感谢开发人员的出色工作:-)。 (我没有使用最新的 osmbonuspack,因为这个版本 (5.5) 是支持 roadMa
我正在尝试在 Android 上创建一个带有 map 的简单应用程序。我正在使用 OSMDroid 的 MapView 来呈现基本的 OpenStreet Map map View 。 我有一个自定义
我的 GeocoderNominatim.getFromLocation() 工作正常。 现在我在 GeocoderNominatim 期间出现错误而没有更改任何内容!? 来自服务器的无效响应:HTT
我是一名优秀的程序员,十分优秀!