Mappoint ObjectsFromPoint(X, Y) vs. Nearby()

Rund um MS-MapPoint

Moderator: Moderatoren

Antworten
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12903
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 44 Mal

Mappoint ObjectsFromPoint(X, Y) vs. Nearby()

Beitrag von AUGE_OHR »

hi,

Code: Alles auswählen

    'Namen jedes Objekts anzeigen, auf das der Benutzer auf der Karte klickt
    Set objResults = objMap.ObjectsFromPoint(X, Y)
    For Each objResult In objResults
      MsgBox objResult.Name
    Next
daraus hab ich dann

Code: Alles auswählen

   IF VALTYPE(oResult) = "O"
      iMax := oResult:Count()
      IF iMax > 0
         i := 1
         FOR i := 1 TO iMax-1
            SLEEP(40)
            oWhat := oResult:Item(i)
ALTD()
            cName := UPPER( oWhat:interfaceName() )
            IF cName = "PUSHPIN"
            ...
            ELSEIF cName = "LOCATION"
            ...   
sowas gemacht. Das Problem : "irgendwann" meckert er :Item(i) an ... mit hohen i Werten.

nun hab ich beim suchen folgendes entdeckt

Code: Alles auswählen

// try to find the Country, State, County
FindResults findResults = 
    MP.ActiveMap.ObjectsFromPoint(MP.ActiveMap.LocationToX(loc), MP.ActiveMap.LocationToY(loc));

try
{
    // known problem with MapPoint -- iterator may throw exception at end
    foreach (object o in findResults) 
    {
        MapPoint.Location locR = o as MapPoint.Location;
        if ( locR == null ) continue;
        MapPoint.GeoShowDataBy locType = locR.Type;
        switch ( locR.Type )
        {
            case GeoShowDataBy.geoShowByCountry:
                this.Country    = locR.Name;
                break;
            case GeoShowDataBy.geoShowByRegion1:
                this.State    = locR.Name;
                break;
            case GeoShowDataBy.geoShowByRegion2:
                this.County    = locR.Name;
                break;
            case GeoShowDataBy.geoShowByCity:
                break;
        }
    }
}
catch (Exception)    // ignore exception
{ }
was ist try, continue, switch und catch ? kann mir das jemand nach Xbase++ übersetzten ?

was ich noch nicht ganz verstehe : ObjectsFromPoint() soll mir ja ein FindResult Auflistung geben
welche Location und Pushpin sein können ... und sonst noch was ?

mit :NearBy bekomme nun ebenfalls eine FindResult Auflistung welche PlaceCategory Objekt hat.
Wenn ich vorher alle Places manuelle in der Original Version "deselektiert" habe dann erscheinen
nur noch "Meine Pins". wie kann ich das "deselektieren" per activeX machen ?
gruss by OHR
Jimmy
Benutzeravatar
Martin Altmann
Foren-Administrator
Foren-Administrator
Beiträge: 16501
Registriert: Fr, 23. Sep 2005 4:58
Wohnort: Berlin
Hat sich bedankt: 111 Mal
Danksagung erhalten: 48 Mal
Kontaktdaten:

Re: Mappoint ObjectsFromPoint(X, Y) vs. Nearby()

Beitrag von Martin Altmann »

Hallo Jimmy,
AUGE_OHR hat geschrieben:was ist try, continue, switch und catch ? kann mir das jemand nach Xbase++ übersetzten ?
komisch, dass noch keiner geantwortet hat - ist hier niemand, der C# kann?
Also - ist zwar schon eine ganze Weile her, aber hier mal mein Versuch:
switch -> do case
continue -> überspringt den nachfolgenden Block (Schleife, Iteration, was auch immer) komplett! In dem Fall wird also der switch (do case...) für das aktuelle Objekt nicht gemacht, falls locR null ist...
try-catch -> entspricht unserem Errorhandler. Unter try kommt der Bereich, der bei uns im Prinzip durch BEGIN SEQUENCE...END SEQUENCE eingeschlossen ist und catch entspricht dann unserem RECOVER USING...

Viele Grüße,
Martin
:grommit:
Webseite mit XB2.NET und ausschließlich statischem Content in Form von HTML-Dateien: https://www.altem.de/
Webseite mit XB2.NET und ausschließlich dynamischem Content in Form von in-memory-HTML: https://meldungen.altem.de/

Mitglied der XUG Osnabrück
Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12903
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 44 Mal

Re: Mappoint ObjectsFromPoint(X, Y) vs. Nearby()

Beitrag von AUGE_OHR »

hi,
Martin Altmann hat geschrieben: komisch, dass noch keiner geantwortet hat - ist hier niemand, der C# kann?
oder es interessiert keinen ...
Martin Altmann hat geschrieben: Also - ist zwar schon eine ganze Weile her, aber hier mal mein Versuch:
switch -> do case
continue -> überspringt den nachfolgenden Block (Schleife, Iteration, was auch immer) komplett! In dem Fall wird also der switch (do case...) für das aktuelle Objekt nicht gemacht, falls locR null ist...
try-catch -> entspricht unserem Errorhandler. Unter try kommt der Bereich, der bei uns im Prinzip durch BEGIN SEQUENCE...END SEQUENCE eingeschlossen ist und catch entspricht dann unserem RECOVER USING...
ok danke das hilft mir doch schon mal weiter. Ich muss mir wohl auch C# aneignen.
gruss by OHR
Jimmy
Antworten