【问题标题】:OSMDroid offset polygonOSMDroid 偏移多边形
【发布时间】:2014-12-18 18:54:26
【问题描述】:

我使用类似于此的代码在我的地图上绘制多边形:

    GeoPoint pt1=new GeoPoint(13002798,77580000);
    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);

现在我想将我的叠加多边形完全偏移 10px,与缩放或其他参数无关。 我怎样才能做到这一点? 我需要这个来在我的 POI 标记箭头上方画线。

【问题讨论】:

  • PathOverlay 已被弃用

标签: android openstreetmap osmdroid


【解决方案1】:

类似的东西:

Projection pj = mapView.getProjection();
Point pix = pj.toPixels(p);
pix.y -= 10; //10 pixels up
GeoPoint p2 = pj.fromPixels(pix2.x, pix2.y);
double offset = p2.getLatitude() - p.getLatitude();

然后你可以通过添加偏移来偏移所有点的纬度。

但是,这个解决方案有点奇怪。相反,您也可以在 POI 标记“下方”显示多边形。 osmdroid 按照它们的顺序显示叠加层:首先在底部,最新在顶部。

最新点:永远不要对填充的多边形使用 PathOverlay,在某些情况下会出现奇怪的行为(当多边形的一部分在视图内时,一部分在视图外)。您可以改用 OSMBonusPack Polygon。

【讨论】:

    猜你喜欢
    • 2019-05-30
    • 2012-10-26
    • 2014-10-07
    • 2011-07-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-13
    • 1970-01-01
    相关资源
    最近更新 更多