我正在致力于功能,以抓取谷歌地图的多线快照,并打开弹出窗口,在多线点击谷歌地图。带有多边形的google地图的快照是有效的,但是它不能在polyline上获取快照打开的弹出窗口。polyline显示在散光照片上,但信息窗口没有显示。下面是快照的代码。
此代码用于初始化javascript onload上的代码控件:
var snapShotControlOptions = { hidden: true };
snapShotControlOptions.buttonLabelHtml="<snap id='snap' style='display:none' >snap</span>"
snapShotControl = new SnapShotControl(snapShotControlOptions);
map.addControl(snapShotControl);以下是抓取快照的方法来拍摄谷歌地图的sanp快照。
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 问题是,当我拍摄谷歌地图时,他们的这些弹出窗口不包括在桑普图上。
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来获取快照。
发布于 2013-02-06 20:12:57
从快照控制源
这个库可以使用Google轻松生成交互式地图的图像“快照”。
静态映射不支持信息窗口,也不支持向映射https://developers.google.com/maps/documentation/staticmaps/index添加自定义文本之类的内容
您可以在浏览器内的画布上绘制地图,然后使用此http://html2canvas.hertzen.com/绘制信息窗口,然后下载画布内容。
https://stackoverflow.com/questions/13946891
复制相似问题