我正致力于利用折线拍摄谷歌地图的快照,并在折线上点击谷歌地图打开弹出窗口。 使用折线的谷歌地图快照正在运行 但它无法在折线上拍摄快照打开弹出窗口。 折线显示在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拍摄快照。
答案 0 :(得分:0)
这个库可以轻松生成您的图像“快照” 交互式地图,使用Google Static Maps API。
静态地图不支持信息窗口或任何类似向地图添加自定义文本的内容 https://developers.google.com/maps/documentation/staticmaps/index
然后,您可以在浏览器中的画布上绘制地图 使用此http://html2canvas.hertzen.com/在此基础上绘制信息窗口 然后下载画布内容