【问题标题】:osmdroid - Add an area to the maposmdroid - 在地图上添加一个区域
【发布时间】:2014-01-06 12:23:43
【问题描述】:

我想在我的 Android 应用程序中的 osmdroid 地图中显示摩洛哥的旅游区。

首先,我一直在网上搜索获取可以定义区域(如数组或 json)的坐标列表(经度和纬度)的方法,但没有运气。地图上只有一个点有解决方案。

其次,使用这些坐标,我如何在 osmdroid 上显示一个区域?谢谢。

【问题讨论】:

  • 我有一个问题。我还想将osmdroid 用于地图,是否需要 Google Play 服务来启动地图,或者我可以摆脱它并使用地图而不依赖于 Google Play 服务?请回复。我想使用 osmdroid,因为我不想依赖 Google Play Services。
  • @Apurva 您不必使用与 Google 相关的任何内容。只有 OSMDroid 会做到这一点
  • 你能说我如何在android studio中集成osmdroidosmbonuspack吗?给我你用过的任何链接。我阅读了它的文档,但不清楚哪些.jar 文件将被复制到libs 文件夹中,我找不到build.gradle 文件的修改

标签: android map coordinates openstreetmap area


【解决方案1】:

首先,我强烈建议您通过 Google Play 服务使用 Google Maps Api V2。这将更容易工作。您不使用它的任何原因?

第二,在地图上画一个多边形,做一些类似的事情

private void AddPolygon() {
    int diff=1000;

    GeoPoint pt1=new GeoPoint(13.002798, 77.580000);
    GeoPoint pt2= new GeoPoint(pt1.getLatitudeE6()+diff, pt1.getLongitudeE6());
    GeoPoint pt3= new GeoPoint(pt1.getLatitudeE6()+diff, pt1.getLongitudeE6()+diff);
    GeoPoint pt4= new GeoPoint(pt1.getLatitudeE6(), pt1.getLongitudeE6()+diff);
    GeoPoint pt5= new GeoPoint(pt1);


    PathOverlay myOverlay= new PathOverlay(Color.RED, this);
    myOverlay.getPaint().setStyle(Paint.Style.FILL);

    myOverlay.addPoint(pt1);
    myOverlay.addPoint(pt2);
    myOverlay.addPoint(pt3);
    myOverlay.addPoint(pt4);
    myOverlay.addPoint(pt5);

    map.getOverlays().add(myOverlay);
}

【讨论】:

  • 我们是一家拥有自己的 GIS 的公司,这就是我们使用自定义地图 API 的原因,因为这是显示我们自己的图块的唯一方法。代码运行良好,但是我将有几十个点来定义一个区域,我实际上有一个我想要显示的每个区域的 KML 文件,有没有办法给 osmdroid 提供 KML 并自动显示它?
  • Google Maps V2 引入了 TileProvider 和 TileOverlay 以便能够显示您自己的图块。
  • 另请注意,我在第一个答案中给出的代码实际上是用于 osmdroid。也许那篇文章并不清楚(你认为那是 GoogleMaps 代码,但它不是,它是 osmdroid 代码)。
  • @Knarf:如果能看到该多边形的实际图像会很有用。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-01-12
  • 1970-01-01
  • 2017-04-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多