2011-06-11 62 views
1

我一直在使用directionsRenderer在我的地圖應用中駕駛方向,所以它呈現路徑(在地圖上)和html列表的方向。我的應用程序的工作原理基本上是這樣的例子:http://code.google.com/apis/maps/documentation/javascript/examples/directions-draggable.html使谷歌地圖的行車路線表現得更像實際的谷歌地圖

不過,現在我一直在問,使其更有點像谷歌地圖的方向正確,例如here

我的客戶想的時候,小的彈出窗口你懸停在HTML項目,以及顯示右轉,左側,合併等小圖標

我已經設法從DirectionsService響應呈現我自己的HTML,並掛鉤事件懸停和關聯他們與地圖上的點,但我可以使用幫助的地方是:

1)逐輪輪到圖標。我想這不是一件容易的事情,因爲我將每一步都作爲html文本(「將左側的433號出口合併到I-80E朝向Bay Bridge/Oakland」),並且我想這可能是合理解析以確定要顯示哪個圖標

2)在地圖上製作小型迷你彈出式窗口。雖然我可以自己製作彈出窗口,但是可能會以完全相同的方式進行,因爲我沒有簡短版本的說明。

無論如何,我想我會檢查是否有人知道如何做這種事情 - 不一定完全正確,但更接近它 - 或者如果我只是運氣不好,因爲谷歌沒有沒有通過他們的api提供任何這種功能。

回答

1

你是正確的,你將不得不檢查字符串來獲取轉彎圖標。您可以自己分析DirectionsResult對象(根據Google的文檔,它是「類似JSON的」),而不是根據您的需要使用DirectionsRenderer,但我認爲它不會爲您帶來什麼好處。這是它將如何去:

  • DirectionsResult.route屬性將是一個DirectionsRoute對象的數組。如果您未將provideRouteAlternatives設置爲true,那麼陣列中只有一個DirectionsRoute對象。

  • DirectionsRoute對象又具有一個叫做腿的屬性。該屬性是DirectionsLeg對象的數組。如果你沒有指定航點(即中間目的地),只是一個起點和終點,那麼這個數組也只有一個對象。

  • DirectionsLeg對象又具有一個名爲steps的屬性。它將是一個數組,其中每個元素都將是一個DirectionsStep對象。

  • DirectionsStep對象有一個名爲instructions的屬性。這是一個字符串,你將不得不使用正則表達式或其他方法來檢查要使用哪個回合圖標。 (這可能比您提到的HTML更易於使用,我認爲它來自DirectionsRenderer。或者它可能不是那麼容易,我不確定,我從來沒有真正實現過完成它。)

希望這有助於,或至少證實您的懷疑。

+0

好吧,它證實了我的懷疑,它不能合理地做到:) – rob 2011-08-01 08:40:24