OpenLayers.Map( map) を持つ( OpenLayers.Layer.Vector)map.addLayer(vectorLayer)があり、 を使用しvectorLayer.addFeaturesて一連のOpenLayers.Feature.Vectorオブジェクトをに追加しますvectorLayer。
プロセスは次のようになります。
var map, vectorLayer;
function initialize()
{
map = new OpenLayers.Map(/*...*/);
vectorLayer = new OpenLayers.Layer.Vector(/*...*/);
map.addLayer(vectorLayer);
}
function populate()
{
arrayOfStuff.foreach(function(thing, i) // data from an AJAX call
{
var feature = new OpenLayers.Feature.Vector(/*...based on thing*/));
feature.vector_type = 'marker';
vectorLayer.addFeature(feature);
}
}
次に を使用map.setCenterしてマップを移動すると、ベクトルの位置がずれてしまいます。マップに合わせて移動するものもあれば、移動しないものもあれば、両方を行うもの (重複の原因となる) などもあります。手動でマップを少しでもパンすると、これらの誤って配置されたベクトルがすぐに修正されます。残念ながら、単に呼び出すだけでmap.panは (一貫して) 同じ効果はなく、vectorLayer.refresh()まったく効果がないようです。
なぜこれが起こっているのですか?どうすれば停止できますか? それができない場合、マップを強制的に修正するにはどうすればよいですか (マップを移動したときのように)。