将谷歌地图捕获为图像?

时间:2013-10-10 23:25:53

标签: javascript jquery google-maps google-maps-api-3 maps

我在静态地图创建上达到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,但是我遇到了跨源画布问题。

任何帮助都会很棒。

1 个答案:

答案 0 :(得分:0)

如果您在不启动网络浏览器的情况下使用Selenium(或PhantomJS),您可以像this link suggests那样使用它。您想要截取的元素的XPath是:// * [@ id =“map”]