2009年11月3日火曜日

OpenLayers 23 Flickr の画像を表示3 - BBOX Strategy

OpenLayers_workshop.pdf の Filtering by BBOX (Slide27) を参考に画像を描画します。
ここには、データサーバが境界線ボックスによるフィルタリングをサポートしているなら、BBOX strategy は、その時のスクリーン上のものだけリクエストする、とあります。
Open Street Map はかなり拡大しないと表示されないので、Flickr を使用しました。
trigpoint レイヤの部分を次のコードに替えます。

---
var flickrphotos = new OpenLayers.Layer.Vector("OSM Bus Stops", {
protocol: new OpenLayers.Protocol.HTTP({
url: "/featureserver112/featureserver.cgi/flickr/all.gml",
format: new OpenLayers.Format.GML()
}),
strategies: [new OpenLayers.Strategy.BBOX()],
projection: new OpenLayers.Projection("EPSG:4326")
});
map.addLayer(flickrphotos);
---

最初表示されませんでしたが、レイヤスイッチを OFF -> ON にすると表示されるようになりました。



画像を表示するために、BBOX Strategy Example(strategy-bbox.html)を参考に、次の様にコードを修正します。

---
var flickrphotos = new OpenLayers.Layer.Vector("Photos", {
protocol: new OpenLayers.Protocol.HTTP({
url: "/featureserver112/featureserver.cgi/flickr/all.gml",
params: {
format: "WFS",
sort: "interestingness-desc",
service: "WFS",
request: "GetFeatures",
srs: "EPSG:4326",
maxfeatures: 10
},
format: new OpenLayers.Format.GML()
}),
strategies: [new OpenLayers.Strategy.BBOX()],
projection: new OpenLayers.Projection("EPSG:4326"),
styleMap: new OpenLayers.StyleMap(style)
});
map.addLayer(flickrphotos);
---

地図を拡大したときに範囲が変わるので、それに合わせて表示される画像が変わるのを期待しましたができませんでした。

0 件のコメント: