题
我想在 Google 地图上创建一个叠加层,以不同的颜色显示不同的街道。
在 Google 地图 API 中,可以创建覆盖某些区域的标记和多边形。
有没有办法以某种方式标记不同的街道?
解决方案
这听起来像你对我有兴趣,显示您的谷歌地图显示一些专用着色(而不是交通地图)。
如果是这样,那么你应该看看自定义叠加。你可以创建自己的透明背景的覆盖瓦片(与你的彩色街道),与谷歌地图的瓷砖搭配起来,然后它们叠加在地图上。你可以找到这个东西在地图API参考描述 - 叠加
我其实一直想尝试了这一点,而这个问题可能是一个很好的借口。我会让你知道我是怎么走了。
编辑:好,我想这和它是非常简单。你只需要抓住瓦片图像时,谷歌地图页面负载(面积要覆盖)。确保你跟踪原始URL的,因为这些有X,Y坐标,你需要编写你的方块叠加方法。
编辑砖与颜色的道路,然后将它们上传到Web服务器。添加以下代码使用您覆盖在常规地图上:
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)
此代码覆盖我的东西吃NY 的瓷砖:
在x = 38598且y = 49259在缩放级别17.
其他提示
你有没有使用concidered OpenStreeMaps ?
尝试挖掘到用于显示对正常的谷歌地图网站的流量覆盖的代码。
编辑:我只是看着代码,似乎即使谷歌决定它更容易只是生成服务器上的交通线路,并拉他们,如同透明的PNG叠加来实现这个
。我刚发现此链接,我想这可能感兴趣。它是一个JavaScript包,对谷歌地图显示多个路由提供的功能。
是不是你要找的?
不隶属于 StackOverflow