0

SEで提起された以前の質問から問題を解決しようと試みましたが、それらを読んでも問題を解決できませんでした。別の質問として投稿してください。

marker次のコードを使用してレイヤーを作成しています

mLayer = new OpenLayers.Layer.Vector(layerName, {
        projection: map.displayProjection,
        extractAttributes: true,
        styleMap: new OpenLayers.StyleMap({'default' : Lstyle}),
        strategies: [new OpenLayers.Strategy.Fixed()],
        protocol: new OpenLayers.Protocol.HTTP({
            url: getURL,
            format: new OpenLayers.Format.GeoJSON()
        })
    });

私の仕事は、marker座標の平均を計算し、それをマップの中心として設定することです。そのために、mLayerオブジェクトから座標を取得します。マーカーは地図上で正常に表示されていますがmLayer.features.length、コンソールで印刷すると表示されますが0、サイズfeaturesは10です。これはfirebug console印刷vLayerで確認できます。これは、私のJSONファイルです。

4

2 に答える 2

1

Openlayersはこの機能を提供します:

次に、とを使用map.getZoomForExtentmap.panToます。

于 2013-02-13T15:52:36.520 に答える
0

マップセンターを提案markers mid pointどおりに設定することはある程度正しいですが、彼のコードの問題は、ブラウザへのダウンロードが完了する前にコードが実行されるため、レイヤーが終了したかどうかを次のように確認する必要がありますChristophe Roussycommentslayer

layer.events.register('loadend', layer, function(evt){map.zoomToExtent(layer.getDataExtent() )} )

それは私にとってはうまく機能しています。

于 2013-02-14T12:02:50.457 に答える