如何使用折线和openInfoWindowHtml拍摄谷歌地图的快照

时间:2012-12-19 06:43:38

标签: javascript

我正致力于利用折线拍摄谷歌地图的快照,并在折线上点击谷歌地图打开弹出窗口。 使用折线的谷歌地图快照正在运行 但它无法在折线上拍摄快照打开弹出窗口。 折线显示在sanpshot图片上,但信息窗口没有显示。 这是拍摄快照的代码。

此代码用于初始化javascript onload上的代码控制:

     var snapShotControlOptions = { hidden: true };
                snapShotControlOptions.buttonLabelHtml="<snap id='snap' style='display:none' >snap</span>"
                snapShotControl = new SnapShotControl(snapShotControlOptions);
                map.addControl(snapShotControl);

这是采取快照拍摄谷歌地图的方法。

        function takeSnap() {

            //static map size
            var sizeStr = "640x640";
            var imgSize = "";
            if (sizeStr != "") {
                var sizeArray = sizeStr.split("x");
                imgSize = new GSize(sizeArray[0], sizeArray[1]);
            }
            snapShotControl.setMapSize(imgSize);
            var format = "jpg";
            snapShotControl.setFormat(format);

            var url = snapShotControl.getImage();
            //            document.getElementById("snapshot_canvas").src = url;
            SaveImage(url);

            //         
        }

//this will add polyline overlay to draw line on google map with different color of polyline on google map .

  var polyline = directionsArray[num].getPolyline();
                polyline.setStrokeStyle({ color: streetColor, weight: 3, opacity: 0.7 });
                polyline.ssColor=streetColor;                
                map.addOverlay(polyline);


///this code will open the pop info window on polyline those polyline created on google map 

问题是当我拍摄谷歌地图时,他们的这些弹出窗口没有包含在sanpshot中。

  var MousePoint = "";
                var marker;
                GEvent.addListener(map, "mousemove", function (point) {
                    MousePoint = new GLatLng(point.lat(), point.lng());

                });

                GEvent.addListener(polyline, "click", function () {                   
                    map.openInfoWindowHtml(MousePoint, headMarkerHtml);                   
                });
                GEvent.addListener(polyline, "mouseout", function () {
                    // map.closeInfoWindow();
                });
你可以告诉我在折线叠加层中通过弹出窗口的人。

我使用javascript文件snapshotcontrol.js拍摄快照。

1 个答案:

答案 0 :(得分:0)

来自snapshotcontrol源

  

这个库可以轻松生成您的图像“快照”   交互式地图,使用Google Static Maps API。

静态地图不支持信息窗口或任何类似向地图添加自定义文本的内容 https://developers.google.com/maps/documentation/staticmaps/index

然后,您可以在浏览器中的画布上绘制地图 使用此http://html2canvas.hertzen.com/在此基础上绘制信息窗口 然后下载画布内容