Nous utilisons des cookies pour vous garantir la meilleure expérience sur notre site. Si vous continuez à utiliser ce dernier, nous considèrerons que vous acceptez l'utilisation des cookies. J'ai compris ! ou En savoir plus !.
banniere

Le portail francophone de la géomatique


Toujours pas inscrit ? Mot de passe oublié ?
Nom d'utilisateur    Mot de passe              Toujours pas inscrit ?   Mot de passe oublié ?

Annonce

GEODATA DAYS 2024

#1 Thu 31 March 2005 16:24

ROBIN Thomas
Invité

mapbasic : besoin d'un coup de main

Bonjour,

je cree actuellement un mbx permettant de generer automatiquement des
plans de situation .

Ainsi la seule donnee a saisir est le numero de dossier pour lequel on
veut generer le plan. (et le seuil de zoom desire)

Ensuite en cliquant sur ok le programme regarde dans toutes les tables
ouvertes si un polygone porte le nom du dossier saisir et zoom dessus
puis lui ajoute pour etiquette le numero dossier correspondant.

Cela fonctionne parfaitement la premiere fois mais ensuite le plan de
situation de fonctionne plus.

cependant si j'enleve les lignes de code permettant d'ajouter la couche
contenant la selection et de mettre l'etiquette cela fonctionne
parfaitement.

J'espere avoir ete clair.

Si qq peut donc essayer de trouver avec moi ce qui cloche ce serait sympa.

Merci

Voici le code pour generer le plan de situation ...

/Sub recherche_dossier
Dim i as integer
dim requete as string
Dim ok as logical

Ok = false

close table toto interactive
set map zoom entire

i = 1
mon_dossier =

If ReadControlValue(5)     then
mon_dossier = ReadControlValue(5)
else
Note  Saisir un numero de dossier
exit sub
dialog preserve
end if

If OptionZoom =    then
Note  Vous n'avez pas choisi l'echelle de zoom
exit sub
dialog preserve
end if

do
If TableInfo(i,TAB_INFO_NAME) like  ZONE_%  then
requete =  Select * From   & TableInfo(i,TAB_INFO_NAME) &
Where   & TableInfo(i,TAB_INFO_NAME) &  .NUM_DOSSIER =   & chr(34) &
mon_dossier & chr(34) &   into toto noselect
run command requete
select * from toto
If SelectionInfo(SEL_INFO_NROWS) = 1 then
'call ViewSelectionParcelle
ok = true
exit do
end if
end if
i = i + 1
loop until i = numtables()

If ok = false then    Note  Aucune parcelle correspondant aux criteres
de recherche n'a ete retrouvee   exit sub end if

'*******************************Configuration de la couche toto
comprenant la selection***********************************
call ViewSelectionParcelle

Add map layer toto
set map redraw off
set map layer toto label auto on
set map redraw off
/

/
'******************************************************************
SUB ViewSelectionParcelle
   
    DIM mnumtables AS INTEGER

    IF SelectionInfo(SEL_INFO_TABLENAME) =    Then
        Note  No Selection...
        Exit Sub
    END IF

    IF Not TableInfo(SelectionInfo(SEL_INFO_TABLENAME),TAB_INFO_MAPPABLE) Then
        Note  Selection is not mappable...
        Exit Sub
    END IF

    mnumtables = NumTables()

    Select * from Selection Into table_select

    Add Map layer table_select

    Set Map Zoom Entire Layer table_select

    Run Command OptionZoom

    Close Table table_select

    IF NumTables() > mnumtables Then
        Close Table TableInfo(NumTables(),TAB_INFO_NAME)
    END IF

    Run menu command 304

End Sub
/

THOMAS ROBIN
CNASEA GUYANE
Responsable Info / SIG / SGBD
Cellule regularisation fonciere agricole
4 rue Louis Blanc
97300 CAYENNE

 

#2 Thu 31 March 2005 18:04

Francois Biju-Duval
Invité

Re: mapbasic : besoin d'un coup de main

J'ai déjà eu un souci qui ressemble au votre (?) : le 1er 'Map from
...' fonctionnait bien mais lors du 2ème, j'affichais une carte  vierge

J'ai résolu en forçant systématiquement le système de projection avant
tout réaffichage :

Set CoordSys Earth Projection 3, 1002,  m , 0, 46.8, 45.898918964419, 47.696014502038, 600000, 2200000
pour Lambert II étendu

 

Pied de page des forums

Powered by FluxBB