如何在聚合物中使用谷歌地图方向元素

How to use the google-map-directions element in Polymer?

本文关键字:谷歌地图 方向 元素 聚合物      更新时间:2023-09-26

我正在使用聚合物的设计工具。按照标准教程创建了一个带有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>

有点长,对不起。

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

建议不胜感激,谢谢!

有一个文档的PR: https://github.com/PolymerLabs/google-map/pull/30

我相信你漏掉了方向元素上的startAddress。除非有起始地址和结束地址,否则元素不会被激活。

顺便说一句,这三个元素都公开了一个可以绑定到的map published属性:

<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(尽管这是完全可以的)。