2014-01-23 115 views
-1

我在我的融合表中有两列,都存储图标的名称。其中一个表是默认图标。融合表图标

我想知道是否有方法在两列之间切换来更改JavaScript中的图标?

干杯

+0

你是如何显示FusionTable它们之间改变?您是否在Google Maps JavaScript API v3地图上使用FusionTablesLayer?或者只是在FusionTables UI中?如果您使用的是FusionTablesLayer,则可以使用[styleId和模板](https://developers.google.com/fusiontables/docs/samples/style_and_template_ids)执行您想要的操作。 – geocodezip

+0

可以这样做:http:// www.geocodezip.com/v3_FusionTables_multipleColIconDefs.html – geocodezip

回答

0
  1. 设置了两个地图在FusionTables UI与相应的列定义的图标(Fusion Tables Help article describing how to do that
  2. “发布”地图,获取HTML和Javascript,将包含要使用的值为每个配置的styleId和模板。在FusionTablesLayer会
  3. 呼叫.setOptions到
<!DOCTYPE html> 
<html> 
<head> 
<meta name="viewport"></meta> 
<title>Astraptes fulgerator- demo data - Google Fusion Tables</title> 
<style type="text/css"> 
html, body, #googft-mapCanvas { 
    height: 300px; 
    margin: 0; 
    padding: 0; 
    width: 500px; 
} 
</style> 

<script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false"></script> 

<script type="text/javascript"> 
    function initialize() { 
    google.maps.visualRefresh = true; 
    var isMobile = (navigator.userAgent.toLowerCase().indexOf('android') > -1) || 
     (navigator.userAgent.match(/(iPod|iPhone|iPad|BlackBerry|Windows Phone|iemobile)/)); 
    if (isMobile) { 
     var viewport = document.querySelector("meta[name=viewport]"); 
     viewport.setAttribute('content', 'initial-scale=1.0, user-scalable=no'); 
    } 
    var mapDiv = document.getElementById('googft-mapCanvas'); 
    mapDiv.style.width = isMobile ? '100%' : '500px'; 
    mapDiv.style.height = isMobile ? '100%' : '300px'; 
    var map = new google.maps.Map(mapDiv, { 
     center: new google.maps.LatLng(10.902224578468406, -85.43183000000005), 
     zoom: 10, 
     mapTypeId: google.maps.MapTypeId.ROADMAP 
    }); 
    map.controls[google.maps.ControlPosition.RIGHT_BOTTOM].push(document.getElementById('googft-legend-open')); 
    map.controls[google.maps.ControlPosition.RIGHT_BOTTOM].push(document.getElementById('googft-legend')); 

    layer = new google.maps.FusionTablesLayer({ 
     map: map, 
     heatmap: { enabled: false }, 
     query: { 
     select: "col12", 
     from: "1_DWHpdjPNGQwVZU5OLbMMS-6yrbIY4wTGJoRMLg", 
     where: "" 
     }, 
     options: { 
     styleId: 3, 
     templateId: 3 
     } 
    }); 
    if (isMobile) { 
     var legend = document.getElementById('googft-legend'); 
     var legendOpenButton = document.getElementById('googft-legend-open'); 
     var legendCloseButton = document.getElementById('googft-legend-close'); 
     legend.style.display = 'none'; 
     legendOpenButton.style.display = 'block'; 
     legendCloseButton.style.display = 'block'; 
     legendOpenButton.onclick = function() { 
     legend.style.display = 'block'; 
     legendOpenButton.style.display = 'none'; 
     } 
     legendCloseButton.onclick = function() { 
     legend.style.display = 'none'; 
     legendOpenButton.style.display = 'block'; 
     } 
    } 
    } 

    google.maps.event.addDomListener(window, 'load', initialize); 
</script> 
</head> 

<body> 
    <input type="button" value="change A" onclick="layer.setOptions({styleId:2, template:2});"></input> 
    <input type="button" value="change B" onclick="layer.setOptions({styleId:3, template:3});"></input> 
    <div id="googft-mapCanvas"></div> 
</body> 
</html>