Полигоны FusionTablesLayer, принимающие только до четырех условных стилей - PullRequest
0 голосов
/ 03 марта 2012

Я создаю тепловую карту выборов, используя Google Fusion Tables, API Карт и 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 допускает только четыре условных стиля?

Ответы [ 2 ]

1 голос
/ 06 марта 2012

Вы должны иметь возможность применять 5 стилей к одному слою в соответствии с документацией API Карт Google:

http://code.google.com/apis/maps/documentation/javascript/layers.html#fusion_table_styles

0 голосов
/ 03 марта 2012

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

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

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

...