Delphi Xe2 で gmlib 1.1 を使用しています。Os は XP sp3 で、インターネット エクスプローラーはバージョン 8 です。私の問題は、実行時にプログラムでグラウンド オーバーレイを追加できないことですが、設計時にこれを行えばすべて問題ありません。オーバーレイが読み込まれ、正しく表示されます。具体的には、実行時に画像を追加すると、エラー 80020101 が発生します。いくつかの調査を行って、ソース コードを調べたところ、TMGGroundOverlay を変更する必要がありました。プロパティ(緯度、経度など)が割り当てられている間にオーバーレイが更新されるとエラーが発生するように見えるため、次のような関数を追加します。
function TGMGroundOverlay.Add(Url: string; SWLat, SWLng, NELat,
NELng: Real): TGroundOverlay;
begin
Result := TGroundOverlay(inherited Add);
result.FVisible:=false;//<---added this line
Result.Url := Url;
Result.Bounds.SW.Lat := SWLat;
Result.Bounds.SW.Lng := SWLng;
Result.Bounds.NE.Lat := NELat;
Result.Bounds.NE.Lng := NELng;
end;
次に、追加したらオーバーレイをアクティブに設定します。ちなみに、gmlib mega-demo の例でも同じエラーが発生しました。この回避策は必要ですか? 新しいオーバーレイを追加したのは私のせいですか?