如何使用两个Google Fusion桌面的数据?

时间:2018-04-06 20:13:24

标签: google-maps google-fusion-tables

我正试图创建一个"服务区域的谷歌地图"在美国&加拿大偶然发现了这个融合表层的东西。认为它会很好,但我遇到了问题。

  1. 我无法创建融合表&在没有付费谷歌的情况下将其公之于众,我不会使用现有的公共桌面。

  2. 我需要将样式应用于融合表层,但我正在加载2个融合表(层)和API仅允许将样式添加到一个图层。

  3. 这是我的代码:

      <script>
        function initMap() {
          // Styles a map in night mode.
          var map = new google.maps.Map(document.getElementById('map'), {
            center: {lat: 40.237395466608156, lng: -93.68512878417971},
            zoom: 3.9,
            styles: []
    
          });
    
          var usa_geometry = new google.maps.FusionTablesLayer({
            query: {
              select: 'geometry',
              from: '1ZZ8j0NDbs2dilcQWjLh9xI7qIJso6DgYAoGTbA',
              where: "STATE IN ('North Dakota', 'Minnesota', 'Wisconsin', 'Ohio', 'Indiana', 'Iowa', 'Illinois', 'Kentucky', 'Missouri', 'Tennessee', 'Arkansas', 'Florida', 'Alabama', 'Mississippi', 'Louisiana', 'Texas', 'Oklahoma', 'Kansas', 'Nebraska', 'South Dakota')",
            },
            styles: [
              { 
                polygonOptions: {
                fillColor: "#006db7",
                strokeColor: "#006db7",
                fillOpacity: ".5",
              },
            }],
    
            map: map,
            suppressInfoWindows: true
          });
    
          var canada_geometry = new google.maps.FusionTablesLayer({
            query: {
              select: 'geometry',
              from: '1auwG6s4axorHR-QAX3UDXL544pSEXlbxmyu6xvJC',
              where: "Place IN ('Quebec', 'Ontario', 'Manitoba')",
    
            },
            styles: [
              { 
                polygonOptions: {
                fillColor: "#006db7",
                strokeColor: "#006db7",
                fillOpacity: ".5",
              },
            }],
    
            map: map,
            suppressInfoWindows: true
          });
    
        };
    
      </script>
    

    所以:

    1. 有没有办法在本地使用融合表多边形数据?即导出CSV并加载?

    2. 有没有办法在一个地图图层中加载来自(加入)2个融合表的数据?

    3. 我还有另一种选择吗?

1 个答案:

答案 0 :(得分:2)

  

有没有办法在本地使用融合表多边形数据?即导出CSV并加载?

是的,Fusion Table can be downloaded as KML,您可以使用toGeoJson之类的第三方应用/库在GeoJSON中加载应用。

  

有没有办法在一个地图图层中加载来自(加入)2个融合表的数据?

您必须merge the tables through the Fusion Tables UI进入一个Fusion Table并加载该图层。

  

我还有另一种选择吗?

是的,因为您邮件的第一部分不正确:“我无法创建融合表,并且无需支付Google费用即可将其公开....”

您无需向Google支付费用即可创建Public or Unlisted Fus​​ion Tables。

此外,当您转到created Fusion Table in the UI,选择Tools->Publish并选择“获取HTML和JavaScript”时,您会看到{{1}的以下未记录选项“options” }}:

FusionTablesLayer

您可以使用layer = new google.maps.FusionTablesLayer({ map: map, heatmap: { enabled: false }, query: { select: "col12", from: "1ClpNLfPQnhEex1KvGg5FrHPgzXgSu1ZvFEL9a2l1", where: "" }, options: { styleId: 2, templateId: 2 } }); 覆盖Javascript API应用的默认样式,并使用您在Fusion Tables UI中定义的样式。

这是simple sample JSBin,显示了options的Javascript中定义的Fusion表样式,而usa_geometry的Fusion Tables UI中定义的Fusion表样式: enter image description here