Слой Google Maps Fusion Table не применяет условные стили на основе текстового столбца - PullRequest
0 голосов
/ 08 февраля 2012

Я хотел бы применить разные стили маркера, зависит от столбца с тремя различными значениями строки.Запрос работает нормально, он использует стили FT, если в сценарии не определены стили, но если реализована условная логика - карта получает слой с меткой «Данные все еще могут загружаться» и ошибки не возникает.

Код:

<script type="text/javascript" src="http://www.google.com/jsapi"></script>
<script type="text/javascript">
        var map,layer;
        google.load('maps', '3', { other_params: 'sensor=false' });
        google.setOnLoadCallback(function(){
        var cp = new google.maps.LatLng(42.87, 74.57);
        map = new google.maps.Map(document.getElementById('map'), {
          center: cp,
          zoom: 7,
          mapTypeId: 'roadmap'
        });
        layer = new google.maps.FusionTablesLayer({
          query: { select: 'Locations (oblast, rayon, village)', from: '2825956' },
          // if the styles definition below exists map doesn't get any data layer applied
          styles: [
            { markerOptions: { iconName: 'wht_blank'} },
                { where: "'Thematic area' = 'Environment and Sustainable development'", markerOptions: { iconName: 'grn_blank' }},
                { where: "'Thematic area' = 'Democratic Governance Programme'", markerOptions: { iconName: 'blu_blank' }},
                { where: "'Thematic area' = 'Poverty Reduction'", markerOptions: { iconName: 'red_blank' }}
            ]
        });
        layer.setMap(map);
    });
</script>

1 Ответ

1 голос
/ 09 февраля 2012

Здорово видеть, что вы используете стиль FT. Это отличная особенность.

Есть только одна проблема с вашим кодом. Столбец, который вы ищете в своей таблице, на самом деле называется Locations.

Измените ваш запрос на:

query: { select: 'Locations', from: '2825956' },

и все работает.

...