1

我已经在下面的代码上工作了一段时间,当鼠标悬停在标记上时,无法让 MapTips 为标记工作。

<html>
<head>
<style>
  #map_canvas { width: 500px; height: 400px; }
</style>
<link href="../stylesheet.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false"></script>
<script type="text/javascript" src="http://gmaps-utility-gis.googlecode.com/svn/trunk/fusiontips/src/fusiontips_compiled.js"></script>
<script type="text/javascript">
var map;

var layer;
var tableid = 5463275;

var layer2;
var tableid2 = 5492676;

function initialize() {
  map = new google.maps.Map(document.getElementById('map_canvas'), {
    center: new google.maps.LatLng(51.500000, -0.090000),
    zoom: 9,
    mapTypeControl: false,
    mapTypeId: google.maps.MapTypeId.TERRAIN
  });

  layer = new google.maps.FusionTablesLayer(tableid, {
  suppressInfoWindows: true
});
  layer.setQuery("SELECT 'geometry' FROM " + tableid);
  layer.setMap(map);

  layer2 = new google.maps.FusionTablesLayer(tableid2);
  layer2.setQuery("SELECT 'Full Address' FROM " + tableid2);
  layer2.setMap(map);
  layer2.enableMapTips({
                select: "'Site Name'",
                from: tableid, 
                geometryColumn: 'Full Address', 
                suppressMapTips: false, 
                delay: 100, 
                tolerance: 6 });

  var legendDiv = document.createElement('DIV');
  var legend = new Legend(legendDiv, map);
  legendDiv.index = 1;
  map.controls[google.maps.ControlPosition.RIGHT_BOTTOM].push(legendDiv);
}


</script>

</head>
<body onLoad="initialize();">

<div id="map_canvas"></div>
</body>
</html>​

该地图由两个融合表图层组成 - 我已链接到包含以下标记数据的表:

标记融合表

任何帮助将不胜感激!

4

1 回答 1

0

您错过了 周围的引号'Full Address',因此查询未正确编码并引发错误。我在 jsFiddle 上放了一个工作示例

这是更正的部分:

layer2.enableMapTips({
    select: "'Site Name'",
    from: tableid, 
    geometryColumn: "'Full Address'", 
    suppressMapTips: false, 
    delay: 100, 
    tolerance: 6 
});

首先,我尝试更新您的代码以使用加密的表 ID,但似乎FusionTips 脚本尚不支持。

于 2012-11-13T22:01:45.200 回答