openLayers-Defining custom rules to style featuresl;

<script type="text/javaScript">

var map=new OpenLayers.Map("ch07_custom_rules");

var osm=new OpenLayers.Layer.OSM():

map.addLayer(osm);

map.setCenter(new OpenLayers.LonLat(40,50).transfrom(new OpenLayers.Projectoin("EPSG:4326"),new  OpenLayers.Projection("EPSG:900913")),3);

var aRule=new OpenLayers.Rule(

filter:new OpanLayers.Rule({

type:OpenLayers.Filter.Comparison.LESS_THAN,

property:"AREA",

value:10000}),

symbolizer:

{

   fillColof:"#EBC137",

    fillOpacity:0.5,

    strokeColor:"black"

}

);

var bRule=new OpenLayers.Rule({

filter:new OpenLayers.Filter.Logical.({

 type:OpenLayers.Filter.Logical.ANF.

filters:[

new OpeanLayers.FIlter.Comparison({

 type:OpenLayers.Filter.Comparison.GREATER_THAN,

property:"AREA":

value:10000  

}),

new OpenLayers.Filter.Comparsion({

type:OpenLayers.Filter.Comparsion.LESS_THAN_OR_EQUAL_TO,

property:"AREA",

value:25000

})

]

}),

symbolizer:

{

 fillColor:"#E38C2D";

fillOpacity:0.7,

strokeColor:"black"

}


})

var dRule=new OpenLayes.Rule({

filter:OpenLayers.Filter.Logicla.AND,

filters:[

new OpenLayers.Filter.Comparison({

type:OpenLayers.Filter.Comparsion.GREATER_THAN,

properyp:"AREA",

value:5000

}),

new OpenLayers.Filter.Comparison({

type:OpenLayers.Filter.Comparsion.LESS_THAN_OR_EQUQL_TO,

prpperty:"AREA"

,

value:100000

})]

symbolizer:

{

 filColor:"#771e10",

fillOpacity:0.7,

strokeColor:"black"

}

});

var eRule=new OpenLayers.Rule({

filter:new OpenLayers.Filter.Comparison({

type:OpenLayers.Filter.Comparison.GREATER_THAN_OR_EQUAL_TO,

property:"AREA",

value:100000

}),

symbolizer:

{

   fillcolor:"#48110c",

   fillOpacity:0.7,

   strokeColor:"black"

}

});

var style=new OpenLayers.Style();

style.addRules([aRule,bRule,cRule,eRule]);

var format=new OpenLayers.Format.SLD();

console.log(format.write(style));


map.addLayer(new OpenLayers.Layer.Vecor("WORLD cities(geoJSON)",{

protocol:new OpenLayers.Protocol.HTTP(

{}

),

styleMap:new OpenLayers.StyleMap(style),

strategies:[new OpenLayers.Strategy.Fixed()]

}));


stuyleing clustered features:

<script type="text/javascript">

var map=new OpenLayers.Map("ch07_cluster_number_style");

var osm=new OpenLayers.Layer.OSM():

map.addLayer(osm);

map.setCenter(new OpenLayers.LonLat(0,20).transform(new OpanLayers.Projection("EPSG:4326"),new OpenLayers.Projection("EPSG:900913")),2);

var cities=new OpenLayers.Layer.Vector("world citires ",{

protocol:new OpenLayers.Protocol.HTTP({

url:"http://..../world_cities.json",

format:new OpenLayers.Format.GeoJSON()

}),

strategies:[new OpenLayers.Strategy.Fixed(),new OpenLayers.Strateg.Cluster({

distance:25

})],

stylMap:new OpenLayers.StyleMap({

'default':new OpenLayers.Style({

stokeWidth:'${strokeFunction},

strokeOpacity:0.5,

strokeColor:"#88aaaa",

fillColor:"#99cc55",

fillOpacity:0.5

pointRadius:'${radiusfunction}',

lable:"${count}"

fontColor:"#ffffff"

},{

context:{

strokeFunction:function(feature){

var count=feature.attributes.count;

var stk=Math.max(0.1*count,1);

return stk;

},radiusfunction:function(feature){

var count=feature.attribures.count;

var radius=Math.max(0.06*count,7);

return radius;

}

}


}

})

});

map.addLayer(cities);


</script>


</script>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值