Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/76.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
Javascript 使谷歌地图跨越一定距离(米)_Javascript_Jquery_Google Maps Api 3 - Fatal编程技术网

Javascript 使谷歌地图跨越一定距离(米)

Javascript 使谷歌地图跨越一定距离(米),javascript,jquery,google-maps-api-3,Javascript,Jquery,Google Maps Api 3,有没有人遇到过这样一种方法:设置谷歌地图的缩放级别,使窗口保持一定的距离 使用google.maps.geometry.spherical.ComputedIstanceBeween()和map.getBounds()(参见doku)在当前zoomlevel中测量地图的宽度 如果需要时测量的距离更宽,则将其除以二。如果它小,乘以2 执行此操作,直到计算的宽度小于或大于目标宽度,并计算必须乘或除的频率 将已计数的数字添加到当前zoomvalue中,以获得目标zoomvalue 注意:您无法将贴图调

有没有人遇到过这样一种方法:设置谷歌地图的缩放级别,使窗口保持一定的距离

  • 使用
    google.maps.geometry.spherical.ComputedIstanceBeween()
    map.getBounds()
    (参见doku)在当前zoomlevel中测量地图的宽度

  • 如果需要时测量的距离更宽,则将其除以二。如果它小,乘以2

  • 执行此操作,直到计算的宽度小于或大于目标宽度,并计算必须乘或除的频率

  • 将已计数的数字添加到当前zoomvalue中,以获得目标zoomvalue


  • 注意:您无法将贴图调整为精确的宽度,因为您仅限于固定的缩放级别,因此这只是一个近似值

    我通过创建一个具有给定距离的圆并使用该距离获得边界,实现了类似的效果。由于API添加了一些填充,所以贴图的宽度与圆的宽度不完全相同

    //Accuracy in metres
    var accuracy = 50; 
    
    /* Create a circle but don't set the 'map' variable as we don't need to see circle on the map */
    var circle = new google.maps.Circle({
                     center: map.getCenter(),
                     radius: accuracy
                 });
    
    //Get the new bounds from the circle
    var bounds = circle.getBounds();
    
    /* Fit the map to the size of the circle. Will be slightly bigger than the circle as the API adds a little padding */
    map.fitBounds(bounds);
    

    由于窗口可以按您喜欢的任何维度显示,JavaScript不一定知道这些维度是什么,我想您必须自己进行计算。我想我必须找到中心和地图边界之间的距离,然后进行修正,以便缩放级别更改该距离,使其在所需距离的给定公差范围内(比方说200米),但如何根据已知的地图尺寸计算出所需的缩放级别却让我感到困惑。谷歌地图上的距离取决于:1.包含地图的div的大小2.您希望测量有效的纬度3.查看地图的缩放级别。G上提供的缩放级别oogle Maps API v3以2的因子进行量化。因此有两个问题:1.您希望地图大小至少显示X米宽,还是正好显示X米宽?(您只能通过更改地图分区的大小来获得近似“精确”的值)。2.您希望在地图上指定的大小在哪里,顶部、中心还是底部?地图的每个缩放级别(全尺寸)谷歌地图在左下角显示比例。你可以计算像素数,并用JavaScript创建一个具有比例的关联数组。此外,它的大小似乎随着每个缩放级别而增加一倍,因此如果你能计算出一个比例,你可以用这个事实来估计所有其他比例。在最高缩放级别,我计算66像素=50英尺(无论如何,在我的屏幕上)。最后我做了几乎与@LeJared完全相同的事情