0

我创建了一个融合表和图层,允许我使用复选框来隐藏或显示地图上的某些标记。我想添加一个类似于平移和缩放功能的搜索功能。此外,一旦地图缩放到该位置,我希望有一个半径选项来识别特定区域内的其他位置。我已经修改了在 IN 查询 (https://developers.google.com/fusiontables/docs/samples/in) 上找到的示例代码,并且可以让复选框工作,但是当我尝试包含平移和缩放代码时( https://developers.google.com/fusiontables/docs/samples/search_and_zoom),我似乎无法使用搜索功能。

我有一张包含大约 4000 条记录的融合表。我是编码新手,所以我确信它在我的语法中。我也会假设我想做的事情是可能的?

任何帮助,将不胜感激。

这是代码。如前所述,我想插入一个利用平移和缩放功能的搜索。我最终从下面的代码中删除了它,因为我不确定如何插入或格式化它。

 <head>
  <style>
    #map-canvas { width:800px; height:600px; }
  </style>
  <script type="text/javascript"
    src="http://maps.google.com/maps/api/js?sensor=false">
  </script>
  <script type="text/javascript">
    var map;
    var layerl0;
function initialize() {
        var tableId = '4422804';

        var map = new google.maps.Map(document.getElementById('map-canvas'), {
          center: new google.maps.LatLng(50.792047064406866, -99.052734375),
          zoom: 2,
          mapTypeId: google.maps.MapTypeId.HYBRID
        });

        var layer = new google.maps.FusionTablesLayer();
        filterMap(layer, tableId, map);

        google.maps.event.addDomListener(document.getElementById('< 5'),
            'click', function() {
              filterMap(layer, tableId, map);
        });

        google.maps.event.addDomListener(document.getElementById('> 5'),
            'click', function() {
              filterMap(layer, tableId, map);
        });

        google.maps.event.addDomListener(document.getElementById('Not Signed'),
            'click', function() {
              filterMap(layer, tableId, map);
        });

    google.maps.event.addDomListener(document.getElementById('Signed Not Selling'),
            'click', function() {
              filterMap(layer, tableId, map);

    });
      }

      // Filter the map based on checkbox selection.
      function filterMap(layer, tableId, map) {
        var where = generateWhere();

        if (where) {
          if (!layer.getMap()) {
            layer.setMap(map);
          }
          layer.setOptions({
            query: {
              select: 'Full Address',
              from: tableId,
              where: where
            }
          });
        } else {
          layer.setMap(null);
        }
      }

      // Generate a where clause from the checkboxes. If no boxes
      // are checked, return an empty string.
      function generateWhere() {
        var filter = [];
        var stores = document.getElementsByName('store');
        for (var i = 0, store; store = stores[i]; i++) {
          if (store.checked) {
            var storeName = store.value.replace(/'/g, '\\\'');
            filter.push("'" + storeName + "'");
          }
        }
        var where = '';
        if (filter.length) {
          where = "'Map' IN (" + filter.join(',') + ')';
        }
        return where;
      }
          google.maps.event.addDomListener(window, 'load', initialize);
    </script>
  </head>
  <body>
    <div id="map-canvas"></div>
4

1 回答 1

0

您没有包括您的复选框等。但这是一个使用按钮而不是复选框的示例。不应该太难适应你的需要。没有放大到,这确实是一个不同的问题。

http://jsfiddle.net/ebridger/wmnDU/

于 2012-06-28T09:52:52.930 回答