2012-03-03 2 views
0

Я строю карту тепла выборов, используя таблицы Google Fusion, API Карт и FusionTablesLayer. Для данного кандидата карта будет затенять округа темнее, в зависимости от процента голосов, которые они выиграли.Полигоны FusionTablesLayer допускают только до четырех условных стилей

Я использую layer.setOptions(), чтобы настроить ведра процентов и установить постепенно более темные fillColors на основе того, где голосование упало. Например, для Санторума:

layer.setOptions({ 
      query: 
      { 
       select: 'geometry', 
       from: '3102804' 
      }, 
      styles: 
      [{ 
       polygonOptions: 
       { 
        fillColor:"#000000", 
        fillOpacity: .8 
       } 
      }, 
      { 
       where: "SantorumPercentage < '.04'", 
       polygonOptions: 
       { 
        fillColor:"#ffeaeb" 

       } 
      }, 
      { 
       where: "SantorumPercentage < '.08' AND SantorumPercentage >= '.04'", 
       polygonOptions: 
       { 
        fillColor:"#fedada" 

       } 
      }, 
      { 
       where: "SantorumPercentage < '.14' AND SantorumPercentage >='.08' ", 
       polygonOptions: 
       { 
        fillColor:"#fec9ca" 

       } 
      }, 
      { 
       where: "SantorumPercentage < '.18' AND SantorumPercentage >= '.14' ", 
       polygonOptions: 
       { 
        fillColor:"#feb8ba" 

       } 
      }, 
      { 
       where: "SantorumPercentage < '.22' AND SantorumPercentage >= '.18' ", 
       polygonOptions: 
       { 
        fillColor:"#fda8aa" 

       } 
      }, 
      { 
       where: "SantorumPercentage < '.26' AND SantorumPercentage >='.22' ", 
       polygonOptions: 
       { 
        fillColor:"#fd9799" 

       } 
      }, 
      { 
       where: "SantorumPercentage < '.30' AND SantorumPercentage >= '.26' ", 
       polygonOptions: 
       { 
        fillColor:"#fd8689" 

       } 
      }, 
      { 
       where: "SantorumPercentage < '.34' AND SantorumPercentage >= '.30' ", 
       polygonOptions: 
       { 
        fillColor:"#fc7679" 

       } 
      }, 
      { 
       where: "SantorumPercentage < '.38' AND SantorumPercentage >= '.34' ", 
       polygonOptions: 
       { 
        fillColor:"#fc6569" 

       } 
      }, 
      { 
       where: "SantorumPercentage < '.42' AND SantorumPercentage >= '.38' ", 
       polygonOptions: 
       { 
        fillColor:"#fc5459" 

       } 
      }, 
      { 
       where: "SantorumPercentage < '.46' AND SantorumPercentage >= '.42' ", 
       polygonOptions: 
       { 
        fillColor:"#fb4448" 

       } 
      }, 
      { 
       where: "SantorumPercentage < '.50' AND SantorumPercentage >= '.46' ", 
       polygonOptions: 
       { 
        fillColor:"#fb3338" 

       } 
      }, 
      { 
       where: "SantorumPercentage < '.54' AND SantorumPercentage >= '.50' ", 
       polygonOptions: 
       { 
        fillColor:"#fb2228" 

       } 
      }, 
      { 
       where: "SantorumPercentage < '.60' AND SantorumPercentage >= '.54' ", 
       polygonOptions: 
       { 
        fillColor:"#fb2228" 

       } 
      }, 
      { 
       where: "SantorumPercentage >= '.60'", 
       polygonOptions: 
       { 
        fillColor:"#f6050b" 

       } 
      }] 


     }); 

Однако FT появляется только распознавать первые 4 «ковши» рендеринг округов, где Санторум выиграл более 18 процентов голосов, как тень по умолчанию, то есть черные.

Это проблема с моим кодом? Или FT допускает только до четырех условных стилей?

ответ

0

Я столкнулся с этой же проблемой перед другим проектом и не смог решить проблему с помощью API Карт. К обходу я использовал стиль FT API Styling, который может быть громоздким при выполнении типа стиля, который вы делаете. Я также нашел post reply от Rebecca с FT, который объясняет, что вы «можете применять до 5 правил стиля». Я еще не смог найти это в документации по плавным слияниям.

Другим возможным обходным решением может быть сделать что-то подобное, как обходной путь к пользовательскому значку, запросить геометрию, а затем отобразить ее как наложение многоугольника.

https://developers.google.com/fusiontables/docs/samples/custom_markers

+0

Да, рассматривая только с помощью SQL API для извлечения данных и генерировать полигоны самостоятельно. Благодаря! – arm5077