Hallo,
suche ein Makro zur formulargestuetzten Suche nach einer Adresse (Ort, Strasse, Hausnr.)mit anschließendem "draufzoomen". "Formulargestuetzt" meint ein Window bzw. MessageBox mit entsprechenden Eingabefeldern, da eine Query bzw. SQL-Abfrage für die Anwender schon zu kompliziert ist.
Ausgangslage ist eine Tabelle u.a. mit den Feldern "Ort", "Strasse", Hausnr" und den entsprechenden Koordinaten.
In AV3.x (bin gerade erst auf 9 umgestiegen) habe ich noch ein Avenue Skript für die Suche ueber drei Felder gefunden, aber wie funktioniert das in AV 8/9 mit VB? Da muss es doch irgendwo schon was geben, leider habe ich noch nix gefunden...
Herzlichen Dank fuer Eure Hinweise, Gruesse,
Chris
P.S.: Wenn wir schon dabei sind: Suche ebenfalls ein Makro fuer die Suche und das Zoomen auf eine einzugebende GK-Koordinate.
suche ein Makro zur formulargestuetzten Suche nach einer Adresse (Ort, Strasse, Hausnr.)mit anschließendem "draufzoomen". "Formulargestuetzt" meint ein Window bzw. MessageBox mit entsprechenden Eingabefeldern, da eine Query bzw. SQL-Abfrage für die Anwender schon zu kompliziert ist.
Ausgangslage ist eine Tabelle u.a. mit den Feldern "Ort", "Strasse", Hausnr" und den entsprechenden Koordinaten.
In AV3.x (bin gerade erst auf 9 umgestiegen) habe ich noch ein Avenue Skript für die Suche ueber drei Felder gefunden, aber wie funktioniert das in AV 8/9 mit VB? Da muss es doch irgendwo schon was geben, leider habe ich noch nix gefunden...
Herzlichen Dank fuer Eure Hinweise, Gruesse,
Chris
P.S.: Wenn wir schon dabei sind: Suche ebenfalls ein Makro fuer die Suche und das Zoomen auf eine einzugebende GK-Koordinate.
- Anmelden oder Registieren, um Kommentare verfassen zu können
Gespeichert von uwelangehh am Fr., 29.10.2004 - 16:14
Permalinkunter Samples -> ArcMap findest du das Beispiel Zoom To Layer:
Public Sub ZoomToLayer()
Dim pMxDoc As IMxDocument
Dim pMap As IMap
Dim pActiveView As IActiveView
Set pMxDoc = Application.Document
Set pMap = pMxDoc.FocusMap
Set pActiveView = pMap
If pMap.Layer(0) Is Nothing Then Exit Sub
pActiveView.Extent = pMap.Layer(0).AreaOfInterest
pActiveView.Refresh
End Sub
Daraus laesst sich eine Prozedur entwerfen, die auf einen bestimmten Punkt (z. B. +-100 m) zoomt:
Public Sub ZoomToLayer(dblX As Double, dblY As Double, intRahmen As Integer)
Dim pMxDoc As IMxDocument
Dim pMap As IMap
Dim pActiveView As IActiveView
Dim pEnvelope As IEnvelope
Set pMxDoc = Application.Document
Set pMap = pMxDoc.FocusMap
Set pActiveView = pMap
' Deinen Ausschnitt definieren
Set pEnvelope = New Envelope
pEnvelope.PutCoords(dblX - intRahmen, _
dblY - intRahmen, dblX + intRahmen, dblY + intRahmen)
pActiveView.Extent = pEnvelope
pActiveView.Refresh
End Sub
Falls du das Formular selber entwerfen moechtest, so kannst du fuer die Selektion das Beispiel Samples -> ArcMap -> Select Features Using An Attribute Query verwenden.
Viel Erfolg, schoenes Wochenende und
Gruss
Uwe.Lange(at)DB-GIS.de
Gespeichert von Chris am Mi., 03.11.2004 - 08:06
Permalinkvielen Dank fuer Deine Hinweise! Da ich leider nicht viel von VB verstehe, werde ich noch ein bisschen Zeit brauchen, um die einzelnen Bausteine zusammenzufrickeln...
(Ich hatte ja eigentlich gehofft, dass schon jede Menge Anweder das beschriebene Problem hatten und ein kompletter Code existiert, aber dass war wohl nix... Aber es kann ja nicht schaden, etwas intensiver in VB einzusteigen... :-)
Danke, Gruß,
Chris