Hallo,
wenn man ein ArcView3.x-Projekt beendet und speichert, wird beim nächsten Start wieder der letzte Viewausschnitt dargestellt.
Gibt es eine Möglichkeit, einen generellen Startausschnitt festzulegen (z.B. eine Komplett-Übersicht), unabhängig vom zuletzt gewählten Ausschnitt? Also eine Kartenabbildung, die immer beim Starten des Projektes als Erstes angzeigt wird.
Vielen Dank, MfG,
christian
wenn man ein ArcView3.x-Projekt beendet und speichert, wird beim nächsten Start wieder der letzte Viewausschnitt dargestellt.
Gibt es eine Möglichkeit, einen generellen Startausschnitt festzulegen (z.B. eine Komplett-Übersicht), unabhängig vom zuletzt gewählten Ausschnitt? Also eine Kartenabbildung, die immer beim Starten des Projektes als Erstes angzeigt wird.
Vielen Dank, MfG,
christian
- Anmelden oder Registieren, um Kommentare verfassen zu können
Gespeichert von Maxilla am Mo., 17.05.2004 - 14:02
Permalinkwenn du das für nur ein bestimmtes Projekt und View haben möchtest, ist's am Einfachsten, dies hier als Start-Skript festzulegen:
theProject = av.getProject
theView = theProject.FindDoc("View1")
if (theView = NIL) then
MsgBox.Info(theView.asString++"nicht gefunden...","")
return NIL
end
r = theView.ReturnExtent
if (r.IsEmpty) then
return nil
elseif ( r.ReturnSize = (0@0) ) then
theView.GetDisplay.PanTo(r.ReturnOrigin)
else
theView.GetDisplay.SetExtent(r.Scale(1.1))
av.GetProject.SetModified(true)
end
Natürlich musst du oben den Namen deines Views angeben. Dann kopierst du dir das in dem Projekt in einen Skripteditor, kompilierst das Skript und gibst ihm einen vernünftigen Namen. Zum Schluss legst du es unter 'Projekt | Eigernschaften' als StartUp fest.
Gruß von Maxilla
Gespeichert von Gast am Mo., 17.05.2004 - 16:01
PermalinkGespeichert von Gast am Di., 18.05.2004 - 16:20
Permalinkvielen Dank für das Script (Maxilla), vielen Dank für die zusätzl. Infos (Gast).
Habe das Script eingebunden, funktioniert einwandfrei.
So wie die Parameter derzeit im Script gesetzt sind, wird immer der volle View zu Beginn angezeigt. Kann ich (leider mit keinerlei Avenue-Wissen), den extent auch auf einen bestimmten Ausschnitt begrenzen? Habe mit "Set.Extent(r.Scale(X.X)) ein bisschen rumprobiert, hat aber nicht so richtig funktioniert...;-)
Danke,
christian
Gespeichert von Maxilla am Di., 18.05.2004 - 18:39
Permalinkalso die Größe des View-Displays, die du beim Start angezeigt haben möchtest, müsstest du dir erst mal herausschreiben lassen. Das kann man über einige Codezeilen machen, aber als einfachste Methode würde ich folgendes vorschlagen: In den MemoTools gibt es eine Funktion namens "Save Window Positon and Zoom" (im Menü "MToolsTOC"). Das schöne an dieser Funktion ist, dass sie Dir alle Größenangaben des Views direkt in ein Skript namens "MT_SaveViewWin_Reminder" schreibt, dass du dann in deinem Projekt findest.
Wenn du in diesem Script folgende Zeilen:
' ----------------------------------
' ASSIGN THE VALUES TO THE ACTIVE VIEW:
theView = av.getActiveDoc
if (theView.Is(View).Not) then
MsgBox.Info("Start this Script from an active View!"," INFO")
return nil
end
ersetzt mit diesen Zeilen:
' ----------------------------------
' ASSIGN THE VALUES TO THE ACTIVE VIEW:
theProject = av.getProject
theView = theProject.FindDoc("View1") '<-- richtigen Viewnamen eingeben
if (theView = NIL) then
MsgBox.Info(theView.asString++"nicht gefunden...","")
return NIL
end
theView.getWin.Open
hast du ein StartUp-Skript, dass das View genau so aufmacht, wie du es "gespeichert" hast. Du musst das Skript noch kompilieren und als Start-Skript festlegen.
Viele Grüße, Maxilla