在我看来,您有兴趣为您的 Google 地图显示(而不是交通地图)显示一些特定于应用程序的颜色。
如果是这样,那么您应该检查自定义叠加层。您可以创建自己的透明背景叠加图块(带有彩色街道),将它们与 Google 地图图块匹配,然后将它们叠加在地图上。您可以在中找到此内容的描述地图 API 参考 - 叠加层 http://code.google.com/apis/maps/documentation/overlays.html#Tile_Layer_Overlays.
我实际上有兴趣尝试一下,这个问题可能是一个很好的借口。我会让你知道我的去向。
编辑:好的,我尝试了这个,结果是非常简单 http://www.cannonade.net/geo.php?test=geo9。您只需要在谷歌地图页面加载时抓取图块图像(对于您想要覆盖的区域)。确保跟踪原始 url,因为它们具有编写图块覆盖方法所需的 x,y 坐标。
用您的彩色道路编辑图块,然后将它们上传到您的网络服务器。添加以下代码以在常规地图上使用叠加层:
var myCopyright = new GCopyrightCollection("© ");
myCopyright.addCopyright(new GCopyright('Demo',
new GLatLngBounds(new GLatLng(-90,-180), new GLatLng(90,180)),
0,'©2007 Google'));
// Create the tile layer overlay and
// implement the three abstract methods
var tilelayer = new GTileLayer(myCopyright);
// properties of the tile I based my tile on
// v=w2.97&hl=en&x=38598&s=&y=49259&z=17&s=Galil.png
tilelayer.getTileUrl = function(point, zoom) {
if (zoom == 17 && point.x == 38598 && point.y == 49259)
return "../pics/times_square.png";
};
tilelayer.isPng = function() { return true;};
tilelayer.getOpacity = function() { return 1.0; }
var myTileLayer = new GTileLayerOverlay(tilelayer);
var map = new GMap2(document.getElementById("map"));
map.setCenter(new GLatLng(40.75740, -73.98590), 17);
map.addOverlay(myTileLayer)
这段代码覆盖了我的东西吞噬纽约 tile:
x = 38598 且 y = 49259,缩放级别为 17。