【问题标题】:Marking streets in Google Maps在 Google 地图中标记街道
【发布时间】:2009-06-29 15:40:54
【问题描述】:

我想在 Google 地图上创建一个叠加层,以不同的颜色显示不同的街道。

在 Google Maps API 中,可以创建覆盖特定区域的标记和多边形。

有没有办法以某种方式标记不同的街道?

【问题讨论】:

    标签: google-maps geocoding


    【解决方案1】:

    在我看来,您似乎有兴趣为您的 Google 地图显示(而不是交通地图)显示一些特定于应用程序的颜色。

    如果是这样,那么您应该检查自定义叠加层。您可以创建自己的透明背景叠加图块(与您的彩色街道),将它们与谷歌地图图块匹配,然后将它们叠加在地图上。您可以在Maps API reference - Overlays 中找到有关这些内容的说明。

    我实际上一直有兴趣尝试这个,这个问题可能是一个很好的借口。我会告诉你我怎么走的。

    编辑:好的,我试过了,它是pretty straightforward。您只需要在谷歌地图页面加载时抓取瓷砖图像(对于您想要覆盖的区域)。确保跟踪原始 url,因为它们具有编写 tile 覆盖方法所需的 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)
    

    这段代码覆盖了我的 Thing eats NY 磁贴:

    x = 38598 和 y = 49259,缩放级别 17。

    【讨论】:

      【解决方案2】:

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

      看看these tutorials

      而如果你想获取某些街道的坐标(经纬度),你可以看看this page的源码

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

      【讨论】:

      • 能否更新链接?它们已经过时了。谢谢
      【解决方案3】:

      你考虑过使用OpenStreeMaps吗?

      【讨论】:

        【解决方案4】:

        尝试深入研究用于在普通 Google 地图网站上显示交通叠加的代码。

        编辑:我刚刚查看了代码,似乎连 Google 都认为通过在服务器上生成交通线路并将它们作为透明的 PNG 覆盖层拉下来更容易实现。

        【讨论】:

          【解决方案5】:

          我刚刚找到this link,我认为这可能会让您感兴趣。它是一个 JavaScript 包,提供在 Google 地图上显示多条路线的功能。

          这是你要找的吗??

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 2016-08-25
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2012-01-30
            相关资源
            最近更新 更多