我有一个应用程序,该应用程序有一个按钮,单击该按钮时会运行查询,然后读取数据集并将标记添加到与读取的值相对应的 TGMMap/TGMMarker 中(它还使用 TGMGeoCode 对地址值进行地理编码,如果这很重要) . 第一次单击按钮时,始终放置正确数量 (10) 的标记,但如果我在显示点后立即再次单击按钮,则会绘制随机数量的标记(有时 3,有时 1,有时5 等)。但是,如果我在再次单击按钮之前等待一段时间(大约 15-20 秒),总是会绘制正确的点数,所以我确信它 s 某种时间问题,其中 DOM 可能未完全构建或某些脚本仍在执行或 ??? 是否有某种状态标志我可以检查以确保地图已准备好接受新标记,或者是否有某种我需要实现的 ProcessMessage 循环?
每次单击按钮时,代码基本上都是这样工作的:
dataSet.Active := false;
dataset.Active := true;
Marker1.Clear();
while (dataset.Eof=false) do
begin
fGeoCoder.Geocode(address);
// Use first GeoCode result??
if (fGeoCoder.GeoStatus = gsOK) and (fGeoCoder.Count > 0) then
begin
geoResult := fGeoCoder.GeoResult[0];
lat := geoResult.Geometry.Location.Lat;
lng := geoResult.Geometry.Location.Lng;
marker := Marker1.Add(lat, lng);
end;
dataset.Next();
end;
提前感谢您提供的任何帮助。