Windows 10 64 비트 개발 시스템에서 GMLib v3 Google지도 구성 요소와 함께 Delphi Berlin을 사용하고 있습니다. GMMarker 구성 요소의 LoadFromDataSet 기능을 사용할 때 마커 또는 눈금을 클릭 할 때 위치를 애니메이션으로 만들 수 있어야합니다. 나는 이것에 대해 어떻게 가야할지 모르겠다.GMLib 및 LoadFromDataset을 사용하여 마커를 애니메이트하는 방법
내 ERP 응용 프로그램은 입력 된 주소를 지오 코딩하고 반환 된 위도와 경도를 잡고 데이터베이스에 저장함으로써 입력 된 주소의 유효성을 검사합니다. 지오 코딩이 여러 값을 반환하면 그리드가있는 화면과 지오 코딩 결과의 위치를 보여주는지도를 표시합니다.
for I := 0 to ListView.Items.Count-1 do
begin
GMMarker1.Add(StrToFloat(ListView.Items[I].SubItems[2]),StrToFloat(ListView.Items[I].SubItems[1]),ListView.Items[I].Caption);
end;
는 I가 다음 수 이니
I 먼저리스트 뷰 컴포넌트 모든 결과를 가산하고, 각리스트 뷰 아이템을 처리하고 다음과 같이 각각의 경우에 대해 GMMarker를 추가함으로써이를 달성 바운스 애니메이션 메소드에 액세스하고 다음과 같이 마커를 클릭 할 때 GMMarker의 인덱스를 사용하여 Listview의 위치를 지정합니다.
procedure TfrmGeoCodeAdd.GMMarker1Click(Sender: TObject; LatLng: TLatLng;Index: Integer; LinkedComponent: TLinkedComponent);
begin
inherited;
if ListView.ItemIndex = Index then
HandleAnimation(Index)
else
ListView.ItemIndex := Index;
end;
procedure TfrmGeoCodeAdd.HandleAnimation(Index: integer);
begin
inherited;
if (AnimationIndex >= 0) then
begin
GMMarker1[AnimationIndex].Animation.Bounce := False;
end;
if (AnimationIndex = index) then
AnimationIndex := -1
else
begin
if GMMarker1[Index].Animation.Bounce then
GMMarker1[Index].Animation.Bounce := False
else
GMMarker1[Index].Animation.Bounce := True;
AnimationIndex := Index;
end;
end;
개별 GMMarkers에 위치를로드 할 때 매우 효과적입니다. 그러나 일단 데이터베이스가 업데이트되면 Google지도에서 특정 날짜의 모든 게재 위치를 표시하여 비슷한 결과를 얻고 싶습니다. 다음지도 이것은 또한 아주 잘 작동
GMMarker1.LoadFromDataSet(cdsDeliveries, 'Latitude', 'Longitude', 'SO_NO', 'Marker', True);
GMMarker1.ZoomToPoints;
및 생산 : 다음과 같이 나는 GMMarker의 LoadfromDataset 기능을 사용하여이 작업을 수행하려면
내가 가진 문제를 LoadFromDataSet이 때 GMMarker.Count는 맵에 많은 마커가 있더라도 1입니다. 따라서 GMMarker의 VisualObjects 속성을 사용해야한다고 가정합니다. 그러나 GMMarker.VisualObjects.Count 1.
내 질문도입니다 :
어떻게이 GMMarkers.LoadFromDataset 기능을 사용할 때 화면에 마커의 Animation.Bounce 속성에 액세스 할 수 있습니다?
도움을 주시면 대단히 감사하겠습니다.