我正在使用带有 Delphi Xe2 的 gmlib 1.1,Os 是 XP sp3,Internet Explorer 是 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 示例中也遇到了同样的错误。这种解决方法是否必要?添加新的叠加层是我的错吗?