2011-02-07 42 views
0

全部,Sencha Touch和Google Maps API - 如何呈現列表方向?

我試圖從Google.maps.DirectionsService.route()顯示結果的文本版本。我將DirectionsRender類傳遞給一個DOM節點 - 一個DIV--讓它呈現文本,但我得到一個空白頁面。有誰知道一種方法將Ext.Panel傳遞給DirectionsRenderer並讓它渲染?這是我目前的嘗試:

plotDirections: function(directionsResult, status) { 

    if (status != this.ROUTING_STATUS_OK) { 
     log.debug("routing blew up: " + status); 
     Ext.Msg.alert('Routing Error', 'Couldn\'t route: ' + status, Ext.emptyFn); 
     return; 
    } 

    var targetListDiv = this.directionsList.getEl().dom; 

    this.directionsRenderer = new google.maps.DirectionsRenderer({ 
     map:this.nearMeMap.map, 
     directions:directionsResult, 
     suppressMarkers:true, 
     panel:targetListDiv 

    }); 

    this.showDirectionsList(); 

    log.debug(targetListDiv.outerHTML); 


} 

感謝您的幫助! PS:我搜索了Sencha論壇,但是,主,他們是無用的。不僅如此,如果我每15秒執行一次搜索就會收到一條錯誤消息 - 我不能一次執行多次。嘿?並且侮辱受傷,您對錶單發佈的任何帖子都必須獲得批准。獲得一個問題的答案是堅果。 </rant>

+0

我的解決方法是搶單個步驟從路線的腿並調用`panel.update(steps)`如下:`this.directionsPanel.update(directionsResult.routes [0] .legs [0] .steps); `。模板看起來像這樣:`var tpl = new Ext.XTemplate( '', '

{instructions} | {distance.text}
', '' );`。任何其他建議非常感謝。 – 2011-02-08 14:27:14

回答

1

我能得到的文本使用以下渲染:

面板代碼:

{ 
    xtype: 'panel', 
    flex: 1, 
    html: '<div id="directionsTextHTML"></div>', 
    id: 'directionsText', 
    scrollable: true 
} 

路線功能代碼:

directionsService.route(request, function(response, dstatus) { 
if (dstatus == google.maps.DirectionsStatus.OK) { 
    directionsDisplay.setDirections(response); 
    directionsDisplay.setMap(mapRef.getMap()); 
    directionsDisplay.setPanel(document.getElementById('directionsTextHTML')); 
}