将多边形边连接到位置数据

时间:2014-09-23 18:14:16

标签: java android google-maps

我正在尝试在用户移动时在地图上绘制带有位置数据的多边形。我不希望多边形之间有任何间断。我需要下一个多边形的一边连接到前一个多边形的边。我该怎么做?我已经完成了迄今为止所做的工作,但我不确定如何收集位置数据并使用之前的数据来连接多边形。

我正在使用:

onLocationChanged(Location location) {
    currentLocation = (new LatLng(location.getLatitude(), location.getLongitude()));
    if(previousLocation != null) {
        polygonCornerBackLeftCorner = SphericalUtil.computeOffset(currentLocation, widthInMeters / 2, location.getBearing() + 90);
        polygonCornerBackRightCorner = SphericalUtil.computeOffset(currentLocation, widthInMeters / 2, location.getBearing() + 90);
    }
    previousLocation = currentLocation
}

polygonGenerator() {
    PolygonOptions polygon =  new PolygonOptions().add(polygonCornerBackLeftCorner,       polygonCornerBackRightCorner, polygonCornerFrontRight, polyCornerFrontLeft).fillColor(Color.YELLOW);
    getMap().addPolygon(whatsquare);
}

1 个答案:

答案 0 :(得分:0)

每当你得到一个新的currentLocation时,你都需要计算与它对应的角点,并且你想要将它们缓存以供日后使用。如果这不是第一个位置,那么你将拥有一对缓存的角点,你将使用它们加上新的角点来制作多边形并将其添加到地图中,然后缓存新的角点下一次迭代。