我想在 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.

其他提示

可以在 Google 地图 API 中创建标记和多边形。您需要创建 GPolygon 和/或 GPolyline 对象

看看 这些教程

如果你想获取某些街道的坐标(纬度,经度),你可以看看源代码 这一页

我不确定是否完全理解你的问题:你想标记一些给定的街道吗?在这种情况下,一种快速而肮脏的方法可能是获取街道所有地址的坐标并根据它们构建 GPolygon...

你有没有使用concidered OpenStreeMaps

尝试挖掘到用于显示对正常的谷歌地图网站的流量覆盖的代码。

编辑:我只是看着代码,似乎即使谷歌决定它更容易只是生成服务器上的交通线路,并拉他们,如同透明的PNG叠加来实现这个

我刚发现此链接,我想这可能感兴趣。它是一个JavaScript包,对谷歌地图显示多个路由提供的功能。

是不是你要找的?

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top