OSMBonusPack 开源项目教程

OSMBonusPack 开源项目教程

osmbonuspackA third-party library of (very) useful additional objects for osmdroid项目地址:https://gitcode.com/gh_mirrors/os/osmbonuspack

项目介绍

OSMBonusPack 是一个第三方库,为 osmdroid 提供了非常有用的额外对象。osmdroid 是一个在 Android 应用程序中与 OpenStreetMap 数据交互的库,它几乎完全替代了 Android 地图对象。OSMBonusPack 扩展了 osmdroid 的功能,提供了更多的地图交互和展示选项。

项目快速启动

安装指南

  1. 克隆项目仓库

    git clone https://github.com/MKergall/osmbonuspack.git
    
  2. 添加依赖: 在你的 build.gradle 文件中添加以下依赖:

    implementation 'org.osmdroid:osmdroid-android:6.1.10'
    implementation 'com.github.MKergall:osmbonuspack:6.7.0'
    
  3. 初始化 osmdroid: 在你的应用程序的 Application 类中初始化 osmdroid:

    import org.osmdroid.config.Configuration;
    import org.osmdroid.util.GeoPoint;
    import org.osmdroid.views.MapView;
    
    public class MyApplication extends Application {
        @Override
        public void onCreate() {
            super.onCreate();
            Configuration.getInstance().load(this, getSharedPreferences("osmdroid", MODE_PRIVATE));
        }
    }
    
  4. 在布局文件中添加 MapView

    <org.osmdroid.views.MapView
        android:id="@+id/mapView"
        android:layout_width="match_parent"
        android:layout_height="match_parent"/>
    
  5. 在 Activity 中使用 MapView

    import org.osmdroid.views.MapView;
    import org.osmdroid.util.GeoPoint;
    
    public class MainActivity extends AppCompatActivity {
        private MapView mapView;
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
    
            mapView = findViewById(R.id.mapView);
            mapView.setTileSource(TileSourceFactory.MAPNIK);
    
            mapView.getController().setCenter(new GeoPoint(51.5074, -0.1278)); // London
            mapView.getController().setZoom(10);
        }
    }
    

应用案例和最佳实践

搜索路线上的加油站

import org.osmdroid.bonuspack.routing.OSRMRoadManager;
import org.osmdroid.bonuspack.routing.Road;
import org.osmdroid.bonuspack.routing.RoadManager;
import org.osmdroid.util.GeoPoint;

// 设置起点和终点
GeoPoint startPoint = new GeoPoint(51.5074, -0.1278); // London
GeoPoint endPoint = new GeoPoint(51.5100, -0.1300); // London

// 创建路线管理器
RoadManager roadManager = new OSRMRoadManager(this);

// 获取路线
ArrayList<GeoPoint> waypoints = new ArrayList<>();
waypoints.add(startPoint);
waypoints.add(endPoint);
Road road = roadManager.getRoad(waypoints);

// 在地图上绘制路线
Overlay roadOverlay = RoadManager.buildRoadOverlay(road);
mapView.getOverlays().add(roadOverlay);
mapView.invalidate();

显示区域内的电影院

import org.osmdroid.bonuspack.overlays.Marker;
import org.osmdroid.bonuspack.overlays.POI;
import org.osmdroid.bonuspack.poi.POIProvider;
import org.osmdroid.bonuspack.poi.POISearching;
import org.osmdroid.util.BoundingBox;

// 设置搜索区域
BoundingBox boundingBox = new BoundingBox(51.5100, -0.1200, 51.5000, -0.

osmbonuspackA third-party library of (very) useful additional objects for osmdroid项目地址:https://gitcode.com/gh_mirrors/os/osmbonuspack

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

李申山

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值