-1

我正在达到静态地图创建的 2048 大小限制。我正在绘制超过 100,000 个坐标,然后我有一个按钮可以在屏幕上查看地图时对地图进行屏幕截图,目前,我正在这样做:

function plotMapPoints(locations) {
    var marker, i, pos;
    var image = "http://maps.google.com/maps/api/staticmap?sensor=false&center=0,0&zoom=" + map.getZoom() + "&size=512x512";

    for (i = 0; i < locations.length; i++) {
        pos = new google.maps.LatLng(locations[i][0], locations[i][1]);
        marker = new google.maps.Marker({
            position: pos,
            map: map
        });
        image += "&markers=" + pos.lat() + ',' + pos.lng();
    }
    console.log(image);
}

当我单击控制台中的链接时,它的格式似乎很好,但是,我从 Google 收到了这个:

413. That’s an error.

Your client issued a request that was too large. That’s all we know.

还有其他人知道将地图捕获为图像的方法吗?我也尝试过 html2canvas,但是我遇到了跨源画布问题。

任何帮助都会很棒。

4

1 回答 1

0

如果您使用 Selenium(或 PhantomJS,如果您想在不启动 Web 浏览器的情况下这样做),您可以按照此链接建议的方式进行操作。您要截屏的元素的 XPath 是://*[@id="map"]

于 2013-10-10T23:32:51.877 回答