Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/188.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/google-maps/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 从latlng返回的磁砖坐标?_Android_Google Maps_Google Maps Android Api 2 - Fatal编程技术网

Android 从latlng返回的磁砖坐标?

Android 从latlng返回的磁砖坐标?,android,google-maps,google-maps-android-api-2,Android,Google Maps,Google Maps Android Api 2,我使用这两个函数将latlng转换为平铺坐标。我无法理解的是,在缩放级别1,是否有4个平铺。那么这些坐标属于哪一块瓷砖呢?还是这些属于左上角 public int langtoTileX(Double lng,int zoom) { double x; x = Math.round((256*(Math.pow(2,zoom-1)))+(lng*((256*(Math.pow(2,zoom)))/360))); return ((int)(x/256)); } publi

我使用这两个函数将latlng转换为平铺坐标。我无法理解的是,在缩放级别1,是否有4个平铺。那么这些坐标属于哪一块瓷砖呢?还是这些属于左上角

public int langtoTileX(Double lng,int zoom)
{
    double x;
    x = Math.round((256*(Math.pow(2,zoom-1)))+(lng*((256*(Math.pow(2,zoom)))/360)));
    return ((int)(x/256));
}
public int lattoTileY(Double lat,int zoom)
{
    Double exp = Math.sin(lat*Math.PI/180);
    if (exp < -.9999)
        exp = -.9999;
    if (exp > .9999)
        exp = .9999 ;
    return (int) (Math.round (256*(Math.pow(2,zoom-1)))+((.5*Math.log((1+exp)/(1-exp)))*((-256*(Math.pow(2,zoom)))/(2*Math.PI))))/256;
}
本例中使用了相同类型的公式:


很可能是它的左上角的瓷砖。当您想要细分贴图时,使用四叉树非常有用,因此在缩放级别1有4个平铺。查找bing地图四键解决方案:。但谷歌地图使用x,y对来表示分幅:。在缩放级别0中,缩放级别1处有1个平铺。您可以看到4个平铺和两侧的一些平铺,等等。pp.链接:

更新:要从x,y对获取边界框,请使用如下矩形x,x+1,y,y+1: . 但是你也可以在Bing和Google地图之间转换。按如下方式替换四键值:0=q,1=r,2=t,3=s,也可以是0=q,1=r,2=s,3=t,并将其附加到url。来源:

Update2:url已失效,但您仍可以使用该代码段:

    def quadtree(x,y, zoom):
    out = []
    m = {(0,0):'q', (0,1):'t', (1,0):'r', (1,1):'s'}
    for i in range(17-zoom):
        x, rx = divmod(x, 2)
    y, ry = divmod(y, 2)
    out.insert(0, m[(rx,ry)])
        return 't' + ''.join(out)

     def xyzoom(quad):
         x, y, z = 0, 0, 17
     m = {'q':(0,0), 't':(0,1), 'r':(1,0), 's':(1,1)}
     for c in quad[1:]:
        x = x*2 + m[c][0]
        y = y*2 + m[c][1]
        z -= 1
     return x, y, z
在地图中,曲线从右上角到右下角到左下角到左上角。因此它看起来像一个倒U形?也许我错了,是左上角,右上角,左下角,右下角?然后是Z形。那么lat,lng对在左上方的瓷砖中

为了得到边界框,我假设long和lat以秒为单位

首先,您需要以秒为单位计算矩形的宽度。一秒钟是赤道上30.9米,对于其他纬度,乘以coslat,因此要将其转换为秒,请执行以下操作:

double widthSeconds = meters / (30.9 * cos(lat));
第二,知道长方体的中心,可以很容易地计算角点的坐标:


最有可能是它的左上角瓷砖。当您想要细分贴图时,使用四叉树非常有用,因此在缩放级别1有4个平铺。查找bing地图四键解决方案:。但谷歌地图使用x,y对来表示分幅:。在缩放级别0中,缩放级别1处有1个平铺。您可以看到4个平铺和两侧的一些平铺,等等。pp.链接:

更新:要从x,y对获取边界框,请使用如下矩形x,x+1,y,y+1: . 但是你也可以在Bing和Google地图之间转换。按如下方式替换四键值:0=q,1=r,2=t,3=s,也可以是0=q,1=r,2=s,3=t,并将其附加到url。来源:

Update2:url已失效,但您仍可以使用该代码段:

    def quadtree(x,y, zoom):
    out = []
    m = {(0,0):'q', (0,1):'t', (1,0):'r', (1,1):'s'}
    for i in range(17-zoom):
        x, rx = divmod(x, 2)
    y, ry = divmod(y, 2)
    out.insert(0, m[(rx,ry)])
        return 't' + ''.join(out)

     def xyzoom(quad):
         x, y, z = 0, 0, 17
     m = {'q':(0,0), 't':(0,1), 'r':(1,0), 's':(1,1)}
     for c in quad[1:]:
        x = x*2 + m[c][0]
        y = y*2 + m[c][1]
        z -= 1
     return x, y, z
在地图中,曲线从右上角到右下角到左下角到左上角。因此它看起来像一个倒U形?也许我错了,是左上角,右上角,左下角,右下角?然后是Z形。那么lat,lng对在左上方的瓷砖中

为了得到边界框,我假设long和lat以秒为单位

首先,您需要以秒为单位计算矩形的宽度。一秒钟是赤道上30.9米,对于其他纬度,乘以coslat,因此要将其转换为秒,请执行以下操作:

double widthSeconds = meters / (30.9 * cos(lat));
第二,知道长方体的中心,可以很容易地计算角点的坐标:


我如何获得表示特定latlong的边界区域?这里还有一个问题。我如何从latlong获得周围的瓷砖?我需要下载represting latlong的瓷砖边界框或瓷砖列表?我是指两个latlong点之间的瓷砖列表。或者我需要下载两个latlong之间的represting region的瓷砖列表?好的你能帮我回答这个问题吗?如何获得表示特定latlong的边界区域?这里是另一个问题。如何从latlong获得周围的瓷砖?我需要下载represting latlong的瓷砖边界框或瓷砖列表?我是指两个latlong点之间的瓷砖列表。或者我需要下载两个latlong之间的represting region的瓷砖列表?可以吗帮我回答这个问题?