相关疑难解决方法(0)

在LatLngBounds构建器上设置最大缩放级别

我的搜索中没有找到答案,有几个答案,但它们对我不起作用.

我在地图上有2个标记,我正在使用LatLngBounds构建器,以便让相机缩放到正确的缩放级别以包含它们.一切都按预期工作,除了一件事,当2个标记真的很接近时,地图非常非常放大,很好,这种缩放水平没有任何意义.

LatLngBounds.Builder builder = new LatLngBounds.Builder();
builder.include(firstMarker.getPosition());
builder.include(secondMarker.getPosition());
LatLngBounds bounds = builder.build();

CameraUpdate cu = CameraUpdateFactory.newLatLngBounds(bounds, markerPadding);
Run Code Online (Sandbox Code Playgroud)

有没有办法强制一定程度的变焦,之后相机不会变焦?这样可以避免地图放大/缩小.基本上我使用15.0f作为缩放级别.如果点太远,我希望变焦适合它们.如果点越来越近,我不希望缩放级别超过15.0f.

android zooming android-maps-v2

26
推荐指数
4
解决办法
2万
查看次数

检查纬度和经度是否在圆圈内

看这个插图:

在此输入图像描述

我想知道的是:

  1. 给定纬度和经度以及距离(10公里)时如何创建区域(圆圈)
  2. 如何检查(计算)纬度和经度是在区域内还是在区域外

如果您能使用Google Maps API V2为我提供Java代码示例或专门针对Android的代码示例,我更愿意

java android area latitude-longitude google-maps-android-api-2

17
推荐指数
1
解决办法
3万
查看次数

TileProvider图形在更高的缩放级别上会出现偏差

我目前正在玩TileProverAndroid Maps API v2,并且遇到了以下问题:我手动绘制到Bitmap中的图形在更高的缩放级别上显着偏斜:

图形是倾斜的

让我解释一下我在这做什么.我有多个LatLng点,我为地图上的每个点画一个圆圈,这样当你放大时 - 点停留在同一个地理位置.正如您在屏幕截图中看到的那样,圆圈在较低的缩放级别上看起来很好,但是当您开始放大时 - 圆圈会变得偏斜.

这就是它的实现方式:

package trickyandroid.com.locationtracking;

import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.Canvas;
import android.graphics.Matrix;
import android.graphics.Paint;
import android.util.Log;

import com.google.android.gms.maps.model.LatLng;
import com.google.android.gms.maps.model.Tile;
import com.google.android.gms.maps.model.TileProvider;
import com.google.maps.android.geometry.Point;
import com.google.maps.android.projection.SphericalMercatorProjection;

import java.io.ByteArrayOutputStream;

/**
 * Created by paveld on 8/8/14.
 */
public class CustomTileProvider implements TileProvider {

    private final int TILE_SIZE = 256;

    private int density = 1;
    private int tileSizeScaled;
    private Paint circlePaint;
    private SphericalMercatorProjection projection;
    private Point[] points;

    public CustomTileProvider(Context context) {
        density …
Run Code Online (Sandbox Code Playgroud)

graphics android tile google-maps-android-api-2

8
推荐指数
1
解决办法
707
查看次数

太多(可能超过 10,000 个)绘制的多边形滞后于谷歌地图

目前在我的应用程序中,通过一个一个地绘制每个多边形正方形并用颜色填充它,在地图上绘制了一个“网格”。然后,我将多边形对象添加到地图中,以便稍后根据需要进行修改。

我只创建每个多边形一次,但是我添加的越多(可能数以万计),就会出现主要的一致“滞后”和低帧速率,最终破坏了应用程序。

这是创建每个“Square”并将其添加到哈希图的代码的当前部分。

double latScale = 0.000180;
double lngScale = 0.000288;

PolygonOptions po = new PolygonOptions()
        .add(   new LatLng(lat, lng),
                new LatLng(lat, lng + lngScale),
                new LatLng(lat - latScale, lng + lngScale),
                new LatLng(lat - latScale, lng))
        .strokeWidth(3f)
        .strokeColor(Color.argb(220, 0, 0, 0));

if (colors.containsKey(color)){
    po.fillColor(colors.get(color));
}
else{
    po.fillColor(colors.get("default"));
}

gridSquares.put(square_id, mMap.addPolygon(po));
Run Code Online (Sandbox Code Playgroud)

我的问题是,究竟是什么导致它滞后这么多(我意识到它一定是绝对数量,但我需要细节,重新绘制每一帧?内存?)我怎么能在某些情况下满足我对这个巨大网格覆盖的需求?不那么滞后的方式。要么用我目前的思路,要么用一种新的方式。

如果需要更多说明,请询问。

android google-maps

5
推荐指数
1
解决办法
1357
查看次数

Google IO 2013 App神秘价值观

我想利用的SVGTileProvider是在发现谷歌IO 2013的应用程序.我无法弄清楚如何在谷歌地图上定位图像.我把它缩小到了课程的这一部分.这些不是纬度/经度坐标,但不管怎样它们必须来自纬度/经度坐标.有谁知道这些是什么或它们来自哪里?

mBaseMatrix.setPolyToPoly(
    new float[]{
        0, 0,
        limits.width(), 0,
        limits.width(), limits.height()
    }, 0,
    new float[]{
        40.95635986328125f, 98.94217824936158f,
        40.95730018615723f, 98.94123077396628f,
        40.95791244506836f, 98.94186019897214f
    }, 0, 3);
Run Code Online (Sandbox Code Playgroud)

更新

第一组神秘数字大致翻译为纬度/经度37.783887,-122.405107.

更新2

这些方法可以帮助我将纬度转换为y值,反之亦然.我如何为X和经度做这个?

public static double y2lat(double aY) {
    return Math.toDegrees(2 * Math.atan(Math.exp(Math.toRadians(aY))) - Math.PI / 2);
}
public static double lat2y(double aLat) {
    return Math.toDegrees(Math.log(Math.tan(Math.PI / 4 + Math.toRadians(aLat) / 2)));
}
Run Code Online (Sandbox Code Playgroud)

android tile googleio google-maps-android-api-2

3
推荐指数
1
解决办法
287
查看次数