我的数据库坐标是
(x,y) -> (37.18312184219552, -122.5216064453125), (37.74655686277364, -122.63720703125).
我需要找到传递给此函数的等效矩形边界。
Polygon polygon = map.addPolygon(new PolygonOptions()
.add(new LatLng(0, 0), new LatLng(0, 5), new LatLng(3, 5), new LatLng(0, 0))
.strokeColor(Color.RED)
.fillColor(Color.BLUE));
必填结果:
当我这样做时,它显示两行而不是矩形。
points.add(new LatLong(x,y)); <-- x and y passed from given coordinates
googleMap.addPolygon(new PolygonOptions()
.addAll(points)
.strokeColor(Color.RED)
.fillColor(Color.BLUE));
获得的结果:
JS具有计算矩形边界的功能,但Google Maps Android API似乎没有任何功能或方法。任何人都可以帮我解决这个问题。
答案 0 :(得分:2)
也许是因为你只为多边形添加了2个点?如果是这样,则2个点标记所需矩形的对角线 - 您需要矩形的其他2个角。这里的代码将创建矩形缺失的2个点并绘制矩形:
public static Polygon drawRectangle(Context context,
GoogleMap googleMap,
LatLng latLng1,
LatLng latLng2,
int strokeWidth,
int strokeColor,
int fillColor) {
Polygon polygon = null;
if (context != null && googleMap != null && latLng1 != null && latLng2 != null) {
// create the other 2 points of the rectangle
LatLng latLng3 = new LatLng(latLng1.latitude, latLng2.longitude);
LatLng latLng4 = new LatLng(latLng2.latitude, latLng1.longitude);
googleMap.addPolygon(new PolygonOptions()
.add(latLng1)
.add(latLng3)
.add(latLng2)
.add(latLng4)
.strokeWidth(strokeWidth)
.strokeColor(strokeColor)
.fillColor(fillColor));
}
return polygon;
}
你这样称呼它:
Polygon polygon = drawRectangle(context,googleMap,
latLng,marker.getPosition(),
8,Color.BLACK,Color.parseColor("#44444444"));