0

从 Internet Explorer 7 和 8 打印 API 生成的 (V3) 谷歌地图时遇到一个奇怪的问题。

我使用类似于以下内容的 JavaScript 生成我的地图:

<script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false"></script>
<script type="text/javascript">
function initialize() {
    var centroid = new google.maps.LatLng(35.9948166667, -83.9781791667);
    var myOptions = {
      disableDefaultUI: true,
      zoom: 12,
      mapTypeId: google.maps.MapTypeId.ROADMAP,
      center: centroid
    };
    var map = new google.maps.Map(document.getElementById("map"), myOptions);
    var marker0 = new google.maps.Marker({
      position: new google.maps.LatLng(36.1102, -83.9208),
      map: map
    });
    var marker1 = new google.maps.Marker({
      position: new google.maps.LatLng(36.001, -83.8646),
      map: map
    });
}
</script>

通常在我的任何地图上都有大约 25-35 个标记。这些在 OS X 和 Windows XP 上的 Safari、Firefox 和 Chrome 打印效果都很好。但是,一旦我尝试从 Internet Explorer 7 或 8 打印,地图就会变得疯狂:它们超出了我在打印 CSS 中设置的边界,并且标记从地图上消失了,只在地图上留下了一个空白点。

有人遇到过这个/知道如何进行吗?

TIA。

4

1 回答 1

1

IIRC,如果您想要打印友好的地图,则必须使用 Google Static Maps API。

从 LatLng 或您的标记构建静态地图 API URL 请求字符串应该很容易。一个警告是 URL 限制为 2048 个字符,包括任何字符转义,这将限制您一次可以在地图上拥有多少个标记。

[编辑] 在 Javascript API 中,标记具有“gmnoprint”类,这会禁止它们显示在打印的渲染中。您可以遍历标记并删除此类,这应该允许它们打印在页面上。据我所知,这不适用于方向线。

于 2011-02-08T17:37:02.640 回答