Google api Overlayviewsを使用しました。私は、ピクセル値を使用して、latlng位置にhtml div要素を持つカスタムオーバーレイを追加することができました。Openlayer 3のレイヤーにカスタムHtml DOM要素を追加する方法
USGSOverlay.prototype.draw = function() {
var overlayProjection = this.getProjection();
var sw = overlayProjection.fromLatLngToDivPixel(this.bounds_.getSouthWest());
var ne = overlayProjection.fromLatLngToDivPixel(this.bounds_.getNorthEast());
var div = this.div_;
div.style.left = sw.x + 'px';
div.style.top = ne.y + 'px';
div.style.width = (ne.x - sw.x) + 'px';
div.style.height = (sw.y - ne.y) + 'px';
};
私はOpenLayer 3を使用しています。ピクセル値を使って特定の位置にマーカーのようなカスタムdiv要素を追加するオプションはありますか?マップがズームインまたはズームアウトされるたびに、正しい位置に表示されるように、ピクセル位置を見つけてdiv要素の左上と左を更新できます。OpenLayer3ではこれが可能ですか?
ありがとうございます。以前に追加されたオーバーレイの位置を変更する必要がある場合は、設定位置を使用する必要があります。しかし、もし私がオーバーレイの数が50であれば、どのように私は所望のオーバーレイオブジェクトを識別できますか?私はオーバーレイオブジェクトの参照を保存し、毎回それをループする必要がありますか? –
はい、各オーバーレイの一意のIDを作成し、それらを含むオブジェクトを作成し、そのIDをキーとして使用して(ループを回避する)直接アクセスできる場合を除き、ループする必要があります。しかし、あなたはレイヤーオプションを使うべきだと私は思っています。 –