有可能突出街道的一部分?

时间:2011-10-08 19:15:01

标签: google-maps google-maps-api-3 bing-maps

我需要突出显示两个十字路口之间的一条街道。我发现了一年多前提出的类似问题(请参阅here),其中说Google,Bing等不通过其API提供街道数据。有没有人知道API中是否有任何变化,以及我是否可以从某个地方获取街道位置纬度/经度数据?

1 个答案:

答案 0 :(得分:0)

我已经在API V2中完成了这个,但它不应该难以为V3重写它。

查看此网站http://www.fvs.de/anfahrt.php(德语),然后在地图下方的部分中点击“Weg in Karte zeigen”按钮(“在地图中显示”)。每个按钮突出显示地图中的另一条街道线。

这基本上是通过使用Google地图的方向对象来绘制地图中两个任意街道点之间的路线(例如,您的两个交叉点)。必须使用LatLng坐标对点进行编码。这是一个代码示例(如上所述,这是API V2):

function initMap() {  // called by page onload event
  if (GBrowserIsCompatible()) {
    // Display the map, with some controls and set the initial location 
    gMap = new GMap2(document.getElementById("map_canvas"));
    gMap.addControl(new GLargeMapControl());
    // ...
    gMap.setCenter(GLatLng(49.238326, 6.977761), 15);

    // init directions object and attach listener to handle route loads from function highliteRoute()
    gDir = new GDirections();
    gPoly = null;
    GEvent.addListener(gDir, 'load', function(){
      gPoly = gDir.getPolyline();
      gMap.addOverlay(gPoly);

      // zoom & pan to poly        
      var polyBds  = gPoly.getBounds();
      var polyZoom = gMap.getBoundsZoomLevel(polyBds);
      gMap.setZoom(polyZoom);
      gMap.panTo(polyBds.getCenter());
    });
  }
}

function highliteRoute(){
  if(gPoly!=null)  gPoly.hide();
  gDir.load('from: 49.313530,6.969109 to: 49.238326,6.977761', {getPolyline:true});
}