SSRS 2012显示必应地图图像

时间:2018-10-29 18:32:50

标签: sql-server reporting-services

我创建了sql以从表中检索信息,并为Bing地图创建url。如果我从查询中获取该网址并将其粘贴到浏览器中,则会显示地图图像。

示例:https://dev.virtualearth.net/REST/V1/Imagery/Map/Road?mapSize=600,600&mapLayer=TrafficFlow&format=png&pushpin=35.96981750,-85.03747790;64;1&key=xxx

但是在SSRS中,如果我使用url作为外部图像,则会收到红色的X-in-box。没有错误消息,但也没有图像。

我读到应该有一种“启用外部图像”的方法。我已经选中了图像框。还有其他地方可以更改设置吗?

1 个答案:

答案 0 :(得分:1)

我可以毫无问题地制作您的地图。请按照以下说明进行操作,并确保可以重现相同的结果,然后将其与自己的报告进行比较。希望问题会变得明显。

创建一个新报告。 创建一个名为BingMapSample的新数据集,并使用以下数据集查询,将键替换为您的 Bing映射键

    -- set up some static values
    DECLARE @BingmapKey varchar(256) = 'XxXX-99x-
9XXXXX9XXxxxXXXxXxXxxxxXxXxx9X9XxxX9xxXxXX9xXXx99x9XXxx'
    DECLARE @MapSize varchar(10) = '600'
    DECLARE @Layer varchar(256) = 'TrafficFlow'

    -- stick a few locations in a table, the first one is from your exmaple
    DECLARE @mapLocations TABLE (coords varchar(256))
    INSERT INTO @mapLocations VALUES
        ('35.96981750,-85.03747790'),
        ('50.998647,-0.105406')


    -- now build up some urls to use in the report
    SELECT 
           'https://dev.virtualearth.net/REST/V1/Imagery/Map/Road?mapSize=' + @MapSize + ',' + @MapSize 
           + '&mapLayer=' + @Layer 
           + '&format=png&pushpin=' + ml.coords
           + ';64;1&key=' + @BingmapKey
           AS BingMapSampleURL
        FROM @mapLocations ml

现在将图像添加到报告中(使用合理的尺寸)并设置以下内容

  • 来源= External
  • 值= =First(Fields!BingMapSampleURL.Value, "BingMapSample")

如果运行报告,您应该会看到地图显示。

要在列表中显示两个地图,请执行以下操作

在报告中添加“列表”并设置

  • DataSetName = BingMapSample

将列表的唯一单元格调整为合理的大小,然后在列表的“单元格”内内部插入图像。设置图像属性,如下所示

  • 来源= External
  • 值= =Fields!BingMapSampleURL.Value

最终设计看起来像这样...(为清楚起见,我在列表背景上加了阴影)。

enter image description here

如果您运行报告,现在还应该看到另外两张地图,总共三张地图。

运行报告时,我得到了

enter image description here

希望有帮助...