Bing maps Bing地图-使用REST图像API确定静态航空地图的最大缩放级别

Bing maps Bing地图-使用REST图像API确定静态航空地图的最大缩放级别,bing-maps,Bing Maps,我正在通过REST图像API从Bing地图检索静态航空地图。某些地理区域似乎比其他区域支持更高的缩放级别 例如,此位置支持最高为21的缩放级别: 但这个位置的最大值似乎是19: 如果超过了19的缩放级别,则返回一幅图像,但该图像只包含一个带斜线的摄影机,表示已超过最大缩放级别 是否有方法调用API来确定返回有效航空图像的最大缩放 谢谢, 跳过正如Nicolas提到的,您可以使用Bing地图图像元数据REST服务获取地图区域的缩放范围:令人惊讶的是,Bing似乎没有直接提供此功能。我希望图像元数据

我正在通过REST图像API从Bing地图检索静态航空地图。某些地理区域似乎比其他区域支持更高的缩放级别

例如,此位置支持最高为21的缩放级别:

但这个位置的最大值似乎是19:

如果超过了19的缩放级别,则返回一幅图像,但该图像只包含一个带斜线的摄影机,表示已超过最大缩放级别

是否有方法调用API来确定返回有效航空图像的最大缩放

谢谢,
跳过

正如Nicolas提到的,您可以使用Bing地图图像元数据REST服务获取地图区域的缩放范围:

令人惊讶的是,Bing似乎没有直接提供此功能。我希望图像元数据响应包含一个字段,该字段指示最高的缩放级别,该级别将返回该位置的有效图像。然而,zoomMin和zoomMax似乎基本上是无用的。通常,您会注意到zoomMax上的图像将返回“断开”的图像,而实际图像仅在较低的缩放级别上可用

我已经创建了一个工作环境,似乎工作得很好。当图像实际存在于您在图像元数据请求url中指定的缩放级别时,vintageStart(和vintageEnd)字段似乎填充了值(例如“2006年1月31日GMT”)。当实际图像不可用时,vintageStart和vintageEnd似乎设置为空。(我想知道这是否绝对可靠?)

您可以从级别21开始,向下调整缩放级别。可以假设填充了vintageStart的第一个级别是具有有效图像的最佳可用缩放级别

深度21:vintageStart为空

请注意,maxZoom显示为21,但您将看到它没有有效的图像

深度21:断开的图像

深度20:葡萄园已人满为患

深度20:有效图像:-)

PHP中的示例代码。。。
(请注意,如果广泛使用此方法,可能会耗尽您的事务配额)

从技术上讲,您可以使用以下URI获取特定点的元数据(最小和最大缩放):
function getHighestZoomAtLocation($lon, $lat){

    //Add extra zoom levels to check if necessary
    foreach(array(21, 20, 19, 18) as $zoom){

        $url = "http://dev.virtualearth.net/REST/v1/Imagery/Metadata/Aerial/{$lat},{$lon}?&zoomLevel={$zoom}&key=BING_API_KEY";

        $imagery_meta_data_raw = file_get_contents($url);

        $imagery_meta_data = json_decode($imagery_meta_data_raw, true);

        if(!empty($imagery_meta_data['resourceSets'][0]['resources'][0]['imageUrl']) && !empty($imagery_meta_data['resourceSets'][0]['resources'][0]['vintageStart'])){
            return $zoom;
        }

    }

    return false;

}