A - 入门

简而言之,我们的自定义元素应该

  • 具有内置搜索功能,可在地图上搜索和标记位置。
  • Accept 一个名为 location-array 的属性,它是一个场所列表
  • 有一个监听器,用于收听名为“google-map-ready”的事件。当元素加载时,会触发此事件。
    • 此侦听器应循环遍历位置数组,并将位置数组中的下一个元素指定为当前搜索查询
  • 有一个叫做缓存的方法
    • 只要搜索返回结果,此方法就会缓存位置数组中每个位置的纬度和经度
  • 有一个 Dom-repeat 模板,它循环缓存结果,并在每个位置删除一个标记

因此,我们的自定义元素的目的本质上意味着,如果你传递一个像这样的位置数组:

<g-map location-array='["Norway","Sweden"]'></g-map>

自定义元素

  • 不仅应该在地图上标记挪威和瑞典,而且,
  • 还应在地图上标记任何后续搜索 - 即,如果你搜索波士顿,在地图标记为挪威和瑞典后,波士顿也应该在地图上有一个图钉

导入依赖项

首先,让我们将我们需要的东西导入到我们的元素中。这个元素在

元件/ G-map.html

<link rel=import href="../bower_components/google-map/google-map.html">
<link rel=import href="../bower_components/google-map/google-map-marker.html">
<link rel=import href="../bower_components/google-map/google-map-search.html">
<link rel=import href="../bower_components/google-map/google-map-directions.html">

注意

上面的一些导入,不是必需的,但是很好,如果你喜欢在标记上添加功能

我们一定需要,

  • 谷歌地图
  • 谷歌地图标记物
  • 谷歌地图搜索

此外,据推测,你知道如何通过 Bower 安装单独的 Polymer Elements

用聚合物注册我们的元素

接下来,我们将自定义元素注册为“g-map”

Polymer({
       is:"g-map" 
});

所以! 我们的自定义元素已在 Polymer 注册。

稍后我们将添加谷歌地图搜索特定属性和我们需要的任何其他属性。

将蓝图添加到我们的自定义元素 - 通过模板

接下来,我们为自定义元素添加模板

打开 elements / g-map.html,并添加一个绑定自定义元素 DOM 的模板

<template id="google-map-with-search">
</template>

现在,将你为自定义元素编写的整个 html 和 javascript 包装在 dom-module 中。

<dom-module id="g-map">
 
    <template id="google-map-with-search">
       
    </template>
    <script>
    Polymer({
        is:"g-map",
        properties: {}
 });
     </script> 
</dom-module>

非常好! 我们有一个基本的蓝图