#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