2011-02-07 97 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')); 
}