如何在Polymer中使用google-map-directions元素?

时间:2014-07-13 20:28:33

标签: javascript google-maps polymer

我正在使用Polymer的设计工具。遵循标准教程创建一个带有google-map元素的脚手架,以及允许您在卫星或地图视图之间切换的菜单项,我现在还尝试创建另一个菜单项以更改为导航视图,使用单独的Google -map-directions元素。

但是,在绑定元素的map和endAddress属性之后,它仍然没有做任何事情。 这是迄今为止的代码:

<polymer-element name="my-element">

  <template>
    <style>
       [snipped for brevity]
    </style>
    <core-scaffold id="core_scaffold">
      <core-header-panel mode="seamed" id="core_header_panel" navigation flex>
        <core-toolbar id="core_toolbar">
          <core-field id="core_field" icon="search" theme="core-light-theme" center horizontal layout>
            <core-icon icon="search" id="core_icon"></core-icon>
            <core-input placeholder="text input" inputvalue="Potsdam" value="{{ $.speech_mic.transcript }}" id="core_input" flex></core-input>
            <speech-mic transcript="Potsdam" id="speech_mic"></speech-mic>
          </core-field>
        </core-toolbar>
        <core-menu selected="Roadmap" valueattr="label" selectedindex="0" id="core_menu" theme="core-light-theme">
          <core-item label="Roadmap" icon="star" size="24" id="core_item" on-tap="{{ showRoad }}" horizontal center layout active></core-item>
          <core-item label="Satellite" icon="add-circle-outline" size="24" id="core_item1" on-tap="{{ showSat }}" horizontal center layout></core-item>
          <core-item label="Navigate" icon="settings" size="24" id="navigate" on-tap="{{ showNavigator }}" horizontal center layout></core-item>
        </core-menu>
        <google-map-search map="{{ $.google_map.map }}" query="{{ $.core_input.value }}" id="google_map_search"></google-map-search>
        <google-map-directions map="{{ $.google_map.map }}" endaddress="{{ $.core_input.value }}" travelmode="WALKING" id="google_map_directions"></google-map-directions>
      </core-header-panel>
      <div id="div" tool class="walktitle">Map Test</div>
      <google-map latitude="{{ $.google_map_search.result.latitude }}" longitude="{{ $.google_map_search.result.longitude }}" zoom="18" showcentermarker id="google_map"></google-map>
    </core-scaffold>
  </template>

  <script>

Polymer('my-element', {
      showRoad: function () {
         this.$.google_map.mapType='roadmap'; 
      },
      showSat: function () {
        this.$.google_map.mapType='satellite';
        },
      showNavigator: function (){
        this.$.google_map_directions.route();
      }
    });

  </script>

</polymer-element>

有点长,抱歉。

这个元素上似乎没有任何示例或文档,只是代码。 任何人都知道缺少什么?

建议表示赞赏,谢谢!

1 个答案:

答案 0 :(得分:1)

有一份公关文件:https://github.com/PolymerLabs/google-map/pull/30

我相信你错过了路线元素上的startAddress。除非有起始和结束地址,否则该元素不会激活。

顺便说一下,所有这三个元素都公开了一个map已发布的属性,你可以绑定到:

<google-map-search map="{{map}}" ...></google-map-search>
<google-map-directions map="{{map}}" ...></google-map-directions>
<google-map map="{{map}}"></google-map>

考虑使用它而不是$.google_map.map(尽管那很好)。