首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用两个Google融合表中的数据?

如何使用两个Google融合表中的数据?
EN

Stack Overflow用户
提问于 2018-04-06 20:13:23
回答 1查看 168关注 0票数 0

我试图在美国和加拿大创建一个“服务区域”的谷歌地图,无意中发现了这种融合表层的东西&认为它会产生很好的效果,但我有问题。

  1. 我不能创建一个融合表&在不向google付费的情况下将其公之于众,没有办法,我将使用现有的公共表。
  2. 我需要将样式应用到融合表层,但我正在加载2个融合表(层)& API只允许将样式添加到一个层。

这是我的代码:

代码语言:javascript
复制
  <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. 还有别的选择我忽略了吗?
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-04-07 00:09:01

有没有一种在本地使用融合表多边形数据的方法?即输出CSV并加载?

是的,是融合表可以作为KML下载。,您可以使用第三方应用程序/库(如toGeoJson )作为GeoJSON在应用程序中加载。

是否有一种方法可以在一个映射层中从(连接)2个融合表加载数据?

您必须将通过融合表UI合并这些表放入一个融合表中并加载该层。

还有别的选择我忽略了吗?

是的,因为你的信息的第一部分是不正确的:“我不能创建一个融合表&在不向google付费的情况下使其公开……”

您可以创建公开或未上市融合表,而无需支付谷歌的费用。

此外,当您转到您的在UI中创建的融合表,选择Tools->Publish并选择"Get和JavaScript“时,您将看到以下用于FusionTablesLayer的无文档选项"options

代码语言:javascript
复制
layer = new google.maps.FusionTablesLayer({
  map: map,
  heatmap: { enabled: false },
  query: {
    select: "col12",
    from: "1ClpNLfPQnhEex1KvGg5FrHPgzXgSu1ZvFEL9a2l1",
    where: ""
  },
  options: {
    styleId: 2,
    templateId: 2
  }
});

您可以使用该options覆盖Javascript应用的默认样式,并使用您在融合表UI中定义的样式。

下面是一个简单样本JSBin,显示在usa_geometry的Javascript中定义的融合表样式,而在canada_geometry的融合表UI中定义的融合表样式:

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49700388

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档