allow single color colorize-alpha

This commit is contained in:
Dane Springmeyer 2013-09-27 16:11:23 -07:00
parent 70976695d8
commit 82e1b37281
7 changed files with 361 additions and 2 deletions

View file

@ -14,6 +14,8 @@ Released ...
Summary: TODO Summary: TODO
- Added single color argument support to `colorize-alpha` to allow colorizing alpha with one color.
- Added `color-to-alpha` `image-filter` to allow for applying alpha in proportion to color similiarity (#2023) - Added `color-to-alpha` `image-filter` to allow for applying alpha in proportion to color similiarity (#2023)
- Added Async support to PostGIS plugin - https://github.com/mapnik/mapnik/wiki/PostGIS-Async - Added Async support to PostGIS plugin - https://github.com/mapnik/mapnik/wiki/PostGIS-Async

View file

@ -482,6 +482,31 @@ void apply_filter(Src & src, colorize_alpha const& op)
{ {
using namespace boost::gil; using namespace boost::gil;
std::size_t size = op.size(); std::size_t size = op.size();
if (op.size() == 1)
{
// no interpolation if only one stop
mapnik::filter::color_stop const& stop = op[0];
mapnik::color const& c = stop.color;
rgba8_view_t src_view = rgba8_view(src);
for (int y=0; y<src_view.height(); ++y)
{
rgba8_view_t::x_iterator src_it = src_view.row_begin(y);
for (int x=0; x<src_view.width(); ++x)
{
uint8_t & r = get_color(src_it[x], red_t());
uint8_t & g = get_color(src_it[x], green_t());
uint8_t & b = get_color(src_it[x], blue_t());
uint8_t & a = get_color(src_it[x], alpha_t());
if ( a > 0)
{
r = (c.red() * a + 255) >> 8;
g = (c.green() * a + 255) >> 8;
b = (c.blue() * a + 255) >> 8;
}
}
}
}
else
if (size > 1) if (size > 1)
{ {
// interpolate multiple stops // interpolate multiple stops

View file

@ -115,8 +115,8 @@ image_filter_grammar<Iterator,ContType>::image_filter_grammar()
>> lit('(') >> lit('(')
>> (css_color_[at_c<0>(_b) = _1, at_c<1>(_b) = 0] >> (css_color_[at_c<0>(_b) = _1, at_c<1>(_b) = 0]
>> -color_stop_offset(_b)) [push_back(_a,_b)] >> -color_stop_offset(_b)) [push_back(_a,_b)]
>> +(lit(',') >> css_color_[at_c<0>(_b) =_1,at_c<1>(_b) = 0] >> -(+(lit(',') >> css_color_[at_c<0>(_b) =_1,at_c<1>(_b) = 0]
>> -color_stop_offset(_b))[push_back(_a,_b)] >> -color_stop_offset(_b))[push_back(_a,_b)])
>> lit(')') [push_back(_r1,_a)] >> lit(')') [push_back(_r1,_a)]
; ;

View file

@ -0,0 +1,283 @@
{
"keys": [
"",
"66",
"28",
"119",
"135",
"168",
"78",
"151",
"53",
"58",
"51",
"44",
"97",
"99",
"20",
"75",
"118",
"42",
"128",
"84",
"31",
"56",
"98",
"41",
"166",
"108",
"29",
"80",
"10",
"72",
"134",
"19",
"147",
"169",
"83",
"131",
"50",
"3",
"104",
"65",
"162",
"59",
"158",
"86",
"130",
"76",
"157",
"100",
"46",
"161",
"39",
"153",
"77",
"1",
"123",
"88",
"94",
"74",
"103",
"48",
"138",
"90",
"120",
"110",
"25",
"106",
"18",
"105",
"4",
"122",
"16",
"163",
"38",
"137",
"115",
"154",
"139",
"91",
"171",
"71",
"45",
"174",
"156",
"67",
"69",
"141",
"49",
"126",
"144",
"117",
"15",
"116",
"52",
"87",
"36",
"170",
"160",
"61",
"60",
"155",
"14",
"33",
"140",
"145",
"146",
"124",
"68",
"143",
"32",
"27",
"95",
"148",
"93",
"34",
"73",
"112",
"23",
"64",
"35",
"165",
"85",
"47",
"125",
"57",
"164",
"127",
"2",
"176",
"159",
"142",
"22",
"111",
"109",
"9",
"102",
"172",
"113",
"177",
"54",
"30",
"132",
"26",
"5",
"175",
"167",
"121",
"55",
"7"
],
"data": {},
"grid": [
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" !!!!! ",
" ##########!!!!!!!!!!!!!!!!!!!! $$ %%% %%% ",
" # ###########!!!!!!!!!!!!!!!!!!!! $$ $ %% ",
" ##### ######## !!!!!!!!!!!!!!! %%% %%%%%%%%%% %%%%% ",
" ####### ### ###### !!!!!!!!!!!! % % %%%%%%%%%%%%%%%%%% %%%% ",
" &&&&&&&&# ###### ######### ####### !!!!!!!!!!! $$$$%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%",
"%%%% &&&&&&&&###################### ##### !!!!!!!! ' $((())%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%",
" %& &&&&&&&###################### ### !!!! ''' $$((()))%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%",
" &&&&&&&&&################# ### !! $$$(( ))%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%% ",
" &&& &&############## ###### * $$(( +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% ",
" && &################# ####### ** ,,( -./%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% ",
" ############################ 0 ** 1223333//%%%%%%%%%%%444444%%%%%%%%%%%%%%%55%%%%%% % ",
" ######################## # * 667228839999999%%%444444444444%%%:%::%%%%%%555%%%% % ",
" &&&&&&&&&&&&&&#####&## ## 6666;<=>>???999%%%%44444444444445:::::::::::55555%% % ",
" &&&&&&&&&&&&&&&##&&&&# 666<< @AA?? 9 %%% 44BB444444455555::::::5555555%% C ",
" &&&&&&&&&&&&&&&&&&&& DEEEE <<<<FGHIIII IJ% KBKBBBBLLL55555555:5555555MM C ",
" &&&&&&&&&&&&&&&&&& DEEE < < H IIIIIINN KKKKBBOO555555555555555 5 M C ",
" &&&&&&&&&&&&&&&&& P QQQR SITUUNNNNNKVVVWW555555555555555 XX CCC ",
" &&&&&&&&&&&&&& PPPQQQRR Y TUUUNNNNNVVVWWZZ555555555555555 CC ",
" [[[[&&&&&&&&& PPQQQQQYYYYY]]]]^^^U_NNNNVVWWWZZ`55555555555555 ",
" [[[[[[& & PPaQQQQQQYYYYY]]]]^^^^^ NNNNWWWZZZZ``bZcc5555555 ",
" [ [[[[ d PaaeQQQQQYYYYY]]]]^^^^^^fg WWZZZZZZhZc55555555i ",
" & [[[ [jjj kkaaeeeQQlllmmYnnnnn^^^^^^gg ZZZZZZZhcccopp55 ",
" [[[[[[ qr aaaaeeeellllmmmnnnnn ^^^sgg ZZZZZ ctop 5 ",
" [[[uvv wwaaaeeelllmmmmnnnnnxssss ZZZZ ctttp y ",
" z{{ wweee|ll}}}mmmnnnnn~~xs ZZ tt\u007fp yy ",
" { \u0080\u0081\u0081\u0081\u0081\u0082 \u0083\u0083ee\u0084\u0085\u0086}}}\u0087mmn\u0088n\u0088\u0088~~\u0089\u0089\u0089\u008a ZZ t pp y y ",
" \u008b\u008b\u0080\u0081\u0081\u0081\u0081\u0081\u008c \u008d\u0083\u008e\u0084\u0085}}}}\u0087m\u008f\u008f\u0088\u0088\u0088\u0088~~~~\u008a \u0090 t y ",
" \u0080\u0080\u0080\u0081\u0081\u0081\u008c\u00916 \u0092\u008e\u0084 }}\u0087\u0087\u008f\u0093\u0093\u0093\u0088\u0088\u0088~~~\u008a\u008a \u0094 \u0095 \u0095\u0095 ",
" \u0080\u0080\u0080\u0080\u0081\u0081\u0096\u008c\u00916\u0096 \u0097\u0098\u0098\u0093\u0093\u0093\u0093\u0099\u0099\u009a\u009a\u008a\u008a \u0094\u0095\u0095 \u0095\u0095\u0094 ",
" \u009b\u009b\u009c\u0080\u0080\u0096\u0096\u0096\u0096\u0096\u0096\u0096\u0096 \u009d\u009d\u009d\u0098\u0093\u0093\u0093\u0093\u0099\u0099\u009a\u009a\u008a \u0094\u0094 \u0094\u0094\u0094 \u0094 \u0094 ",
" \u009c\u009c\u009c\u009c\u009c\u0096\u0096\u0096\u0096\u0096\u0096\u0096\u0096\u0096\u0096\u0096 \u009d\u0098\u0093\u0093\u0093\u0093\u0093\u009e\u009e\u009e\u009a \u0094\u0094 \u0094\u0094 \u0094 \u0094\u0094\u0094\u0094\u0094\u009f\u009f \u009f ",
" \u009c\u009c\u009c\u009c\u0096\u0096\u0096\u0096\u0096\u0096\u0096\u0096\u0096\u0096\u0096\u0096\u0096 \u00a0\u0093\u0093\u0093\u0093\u0093\u009e\u009e\u009e \u0094 \u0094\u009f\u009f\u009f\u009f \u009f ",
" \u009c\u009c\u009c\u0096\u0096\u0096\u0096\u0096\u0096\u0096\u0096\u0096\u0096\u0096\u0096\u0096 \u00a0\u00a0\u00a0\u0093\u0093\u00a1\u00a1\u009e\u009e\u009e \u0094\u0094\u0094\u00a2 \u009f \u009f\u009f \u00a3 ",
" \u009c\u009c\u009c\u00a4\u0096\u0096\u0096\u0096\u0096\u0096\u0096\u0096\u0096\u0096 \u00a0\u00a0\u00a0\u00a0\u00a1\u00a1\u00a1\u00a5\u009e\u00a6 \u00a7\u00a7 ",
" \u009c\u009c\u009c\u00a4\u00a4\u00a4\u0096\u0096\u0096\u0096\u0096\u0096\u0096\u0096 \u00a0\u00a0\u00a0\u00a1\u00a1\u00a1\u00a1\u00a5\u00a6\u00a6 \u00a8 \u00a7\u00a7\u00a7\u00a7 \u00a7 \u00a9 ",
" \u009c\u00a4\u00a4\u00a4\u00a4\u0096\u0096\u0096\u0096\u0096\u0096\u0096 \u00aa\u00aa\u00aa\u00aa\u00a1\u00ab\u00ab\u00ab\u00a6\u00a6 \u00a8\u00a8 \u00a7\u00a7\u00a7\u00a7\u00a7\u00a7\u00a7\u00a7 \u00ac",
" \u00ad\u00a4\u00a4\u00ae\u00ae\u0096\u0096\u0096\u0096\u0096\u0096 \u00aa\u00aa\u00aa\u00af\u00af\u00ab\u00ab\u00a6 \u00a8\u00a8 \u00a7\u00a7\u00a7\u00a7\u00a7\u00a7\u00a7\u00a7\u00a7\u00a7\u00a7 ",
" \u00ad\u00ad\u00b0\u00ae\u00ae\u00ae\u0096\u0096\u0096\u0096\u0096 \u00aa\u00aa\u00aa\u00af\u00af\u00b1\u00b1\u00a6 \u00a8 \u00a7\u00a7\u00a7\u00a7\u00a7\u00a7\u00a7\u00a7\u00a7\u00a7\u00a7\u00a7\u00a7 ",
" \u00ad\u00b0\u00b0\u00b0\u00b0\u00ae\u0096\u0096 \u00aa\u00b1\u00b1\u00b1\u00b1\u00b1 \u00a7\u00a7\u00a7\u00a7\u00a7\u00a7\u00a7\u00a7\u00a7\u00a7\u00a7\u00a7\u00a7\u00a7 ",
" \u00ad\u00b0\u00b0\u00b0\u00b0\u0096\u0096\u0096 \u00b1\u00b1\u00b1\u00b1\u00b1\u00b1 \u00a7\u00a7\u00a7\u00a7\u00a7\u00a7\u00a7\u00a7\u00a7\u00a7\u00a7\u00a7\u00a7\u00a7 ",
" \u00b0\u00b0\u00b0\u00b0\u00b0\u00b2\u0096 \u00b1\u00b1\u00b1\u00b1 \u00a7\u00a7\u00a7\u00a7\u00a7\u00a7\u00a7\u00a7\u00a7\u00a7\u00a7\u00a7\u00a7\u00a7 ",
" \u00ad\u00b0\u00b0\u00b0\u00b0\u00b2 \u00b1 \u00a7\u00a7 \u00a7\u00a7\u00a7\u00a7\u00a7\u00a7 ",
" \u00ad\u00b0\u00b0\u00b0\u00b0\u00b0 \u00a7\u00a7\u00a7\u00a7 \u00b3 ",
" \u00ad\u00b0\u00b0\u00b0 \u00b3 ",
" \u00ad\u00b0\u00b0\u00b0 \u00a7 \u00b3 ",
" \u00ad\u00b0\u00b0 \u00b3\u00b3 ",
" \u00ad\u00ad\u00b0\u00b0 ",
" \u00ad\u00ad\u00b0 \u00b4 ",
" \u00ad\u00ad\u00b0 ",
" ",
" ",
" ",
" \u00b5 \u00b5 ",
" \u00b5 \u00b5 \u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5 \u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5 ",
" \u00b5\u00b5\u00b5\u00b5\u00b5 \u00b5 \u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5 \u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5 ",
" \u00b5 \u00b5\u00b5\u00b5 \u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5 \u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5 ",
" \u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5 \u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5 ",
" \u00b5\u00b5 \u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5 \u00b5\u00b5\u00b5 \u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5 ",
" \u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5 \u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5 ",
"\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5 \u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5",
"\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5\u00b5",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" "
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 25 KiB

View file

@ -0,0 +1,49 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE Map[]>
<Map>
<Style name="countries">
<Rule>
<PolygonSymbolizer fill-opacity=".9" gamma=".65"/>
</Rule>
</Style>
<Style name="style" image-filters="colorize-alpha(blue)">
<Rule>
<PointSymbolizer file="../../data/images/marker.png" allow-overlap="true" />
</Rule>
</Style>
<Layer name="world">
<StyleName>countries</StyleName>
<Datasource>
<Parameter name="file">../../data/shp/ne_110m_admin_0_countries.shp</Parameter>
<Parameter name="type">shape</Parameter>
</Datasource>
</Layer>
<Layer name="style">
<StyleName>style</StyleName>
<Datasource>
<Parameter name="inline">
x,y
-170,20
-122,48
-122.2,48.2
-122.2,48.2
-122.3,48.3
-122.1,48.4
-122.1,48.2
-115,36
90,30
0,0
1,1
10,10
-10,-10
-20,-20
</Parameter>
<Parameter name="type">csv</Parameter>
</Datasource>
</Layer>
</Map>