Android Google Map v2 绘制静态网格
Android Google Map v2 draw static grids
我试图仅在缩放级别为 18 时在地图上绘制网格。我使用以下代码成功创建了网格。但是我在移动地图时遇到一个问题,创建了新的网格并且位置发生了变化。您可以看到,在右图的屏幕截图中,我将地图向左滑动,网格线不一样。我想要绘制固定网格。代码贴在图片下方。
我从 GoogleMap 的 onCameraChange 侦听器调用以下代码。
double squareSize = 5.0d; //5.0d == 50feet
final double LONGITUDE_180 = 180.0d;
final double LATITUDE_90 = 90.0d;
final double PI = 3.141592653589793d;
Code removed its confidential.
绘制单线的 drawPolyline 函数
private void drawPolyline(LatLng latLng, LatLng latLng2) {
PolylineOptions polylineOptions = new PolylineOptions();
polylineOptions.add(latLng, latLng2);
polylineOptions.color(Color.argb(50, 0, 0, 100));
polylineOptions.width(3.5f);
polylineOptions.visible(true);
polylineOptions.geodesic(true);
Polyline polyline = googleMap.addPolyline(polylineOptions);
this.polylines.add(polyline);
}
double squareSize = 5.0d; //5.0d == 50feet
那个不是正方形尺寸改成。
double squareSize = 1.0d;
然后它会正常工作,但网格大小将像 what3words 中那样为 3 米。
要使其成为接近 50 英尺的 15 米,请将 1546.0d 和 37104.0d 与 5. 相除
37104.0d 等于 1546.0d * 24.
最好提取变量中的所有这些值并将它们用作。
double var1 = 1546.0d / 5; // replace with value 1546.0
double var2 = var1 * 24; // replace with value 37104.0d
希望对您有所帮助。
我试图仅在缩放级别为 18 时在地图上绘制网格。我使用以下代码成功创建了网格。但是我在移动地图时遇到一个问题,创建了新的网格并且位置发生了变化。您可以看到,在右图的屏幕截图中,我将地图向左滑动,网格线不一样。我想要绘制固定网格。代码贴在图片下方。
我从 GoogleMap 的 onCameraChange 侦听器调用以下代码。
double squareSize = 5.0d; //5.0d == 50feet
final double LONGITUDE_180 = 180.0d;
final double LATITUDE_90 = 90.0d;
final double PI = 3.141592653589793d;
Code removed its confidential.
绘制单线的 drawPolyline 函数
private void drawPolyline(LatLng latLng, LatLng latLng2) {
PolylineOptions polylineOptions = new PolylineOptions();
polylineOptions.add(latLng, latLng2);
polylineOptions.color(Color.argb(50, 0, 0, 100));
polylineOptions.width(3.5f);
polylineOptions.visible(true);
polylineOptions.geodesic(true);
Polyline polyline = googleMap.addPolyline(polylineOptions);
this.polylines.add(polyline);
}
double squareSize = 5.0d; //5.0d == 50feet
那个不是正方形尺寸改成。
double squareSize = 1.0d;
然后它会正常工作,但网格大小将像 what3words 中那样为 3 米。 要使其成为接近 50 英尺的 15 米,请将 1546.0d 和 37104.0d 与 5. 相除
37104.0d 等于 1546.0d * 24.
最好提取变量中的所有这些值并将它们用作。
double var1 = 1546.0d / 5; // replace with value 1546.0
double var2 = var1 * 24; // replace with value 37104.0d
希望对您有所帮助。