因此,您想获取纬度/经度坐标并找出该位置图像上的像素坐标吗?
主要的 GMap2 类提供到/从显示地图上的像素和纬度/经度坐标的转换:
Gmap2.fromLatLngToContainerPixel(latlng)
例如:
var gmap2 = new GMap2(document.getElementById("map_canvas"));
var geocoder = new GClientGeocoder();
geocoder.getLatLng( "1600 Pennsylvania Avenue NW Washington, D.C. 20500",
function( latlng ) {
var pixel_coords = gmap2.fromLatLngToContainerPixel(latlng);
window.alert( "The White House is at pixel coordinates (" +
pixel_coodrs.x + ", " + pixel_coords.y + ") on the " +
"map image shown on this page." );
}
);
因此,假设您的地图图像是 Google 地图显示的屏幕抓取,那么这将为您提供经纬度坐标图像上的正确像素坐标。
如果您自己抓取图块图像并将它们拼接在一起,事情会更棘手,因为完整图块集的区域将位于显示地图的区域之外。
在这种情况下,您需要使用左上角图像图块的左值和上值作为 fromLatLngToContainerPixel(latlng:GLatLng) 为您提供的坐标的偏移量,从 x 坐标中减去左坐标,从y 坐标。因此,如果左上角的图像位于 (-50, -122) (左,上),并且 fromLatLngToContainerPixel() 告诉您纬度/经度位于像素坐标 (150, 320),那么在从瓷砖,坐标的真实位置在 (150 - (-50), 320 - (-122)) 即 (200, 442)。
也有可能是类似的 GMap2 坐标平移函数:
GMap2.fromLatLngToDivPixel(latlng:GLatLng)
将为您提供拼接瓷砖案例的正确纬度/经度到像素的转换 - 我没有测试过这个,也不是 100% 从 API 文档中清楚。
请参阅此处了解更多信息:http :
//code.google.com/apis/maps/documentation/reference.html#GMap2.Methods.Coordinate-Transformations