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é ?

#1 Sun 04 October 2009 17:19

fredericfridi
Participant actif
Date d'inscription: 2 Feb 2008
Messages: 97

MapBasic: problème de coordonnées

[Bonjour
Je suis en train de faire un programme mapbasic 95 où  je crée une table points en lambert1 puis
j'ouvre un raster calée par mes soins puis les noms de voies puis j'ouvre un fichier de point en lambert1
Dans la table points  j'insère les coordonnées manuellement pour trouver le problème

Code:

Insert Into pointS (obj) 
Values ( CreatePoint (311253,223720))

Eh bien quand je vais sélectionner ce point les coordonnées sont les suivantes: 600000, 4863838

Si quelqu'un peut m'expliquer pourquoi ?

Le code complet un peu brouillon est en dessous

Code:

dim nouveau as string
dim x as INTEGER
dim y as INTEGER
dim no as string

Create Table "pointS" (Champ1 Char(10)) file "C:\boyer\pointS.TAB" TYPE NATIVE Charset "WindowsLatin1"
Create Map For pointS CoordSys Earth Projection 3, 1002, "m", 0, 49.5, 48.5985227778, 50.39591167, 600000, 200000 Bounds (-40092, -818525) (1264450, 486383)
Map From pointS
Set Map Layer 1 Editable On

Set Map Layer 1 Editable On
Open Table "C:\boyer\Equeurdreville.TAB" Interactive
Add Map Auto Layer Equeurdreville
Open Table "C:\boyer\Voies_filaire.TAB" Interactive
Add Map Auto Layer Voies_filaire

Set Window FrontWindow() Enhanced On
Set Map Layer 3 Display Global Global Line (2,2,16776960)  Label Font ("Arial",1,3,0,16777215) With Nom2 Follow Path Auto On Offset 0 Alpha 104
set map redraw on
Set Window FrontWindow() Title "carte"
NOUVEAU = "C:\boyer\pointl1.txt"
Open file NOUVEAU For Input As #1

do Until EOF(1)

Input #1, no,x,y
print x
print y 
Insert Into pointS (obj) 
Values ( CreatePoint (311253,223720))
Set Map Layer 1 Display Global Global Symbol (34,255,14) 
select * from pointS   into Selection
Set Map  Zoom Entire 
Set Map  Center (x, y) 
NOTE ""

Set Map  Scale 1 Units "cm" For 2460 Units "cm"
Layout
Set CoordSys Layout Units "cm"
Create Frame (0.1,0.1) (13.899,7.4) Pen (1,2,0) Brush (2,16777215,16777215) Title"carte" FillFrame On
Set Window FrontWindow() Title NO

Dim win_id As Integer 
 win_id = FrontWindow( )
 PrintWin Window win_id 

note no

close Window FrontWindow() 
Delete Object From selection

Loop

Dernière modification par fredericfridi (Sun 04 October 2009 17:21)

Hors ligne

 

#2 Sun 04 October 2009 18:30

fredericfridi
Participant actif
Date d'inscription: 2 Feb 2008
Messages: 97

Re: MapBasic: problème de coordonnées

Je viens de trouver...
Même si la table a déjà la projection, il faut  lui la lui préciser.

Code:

Set CoordSys Earth Projection 1, 104
Insert Into pointS (obj) 
Values ( CreatePoint (x,y))

Hors ligne

 

#3 Sun 04 October 2009 18:46

Maurice
Membre
Lieu: Montpellier
Date d'inscription: 5 Sep 2005
Messages: 5331

Re: MapBasic: problème de coordonnées

Euh...je doute fort que votre solution soit la bonne...
Par défaut MB utilise une projection longitude/latitude (a priori pas WGS84)
Si vous forcez par Set CoordSys la projection en longitude/latitude WGS84, le X,Y devront être indiqués dans cette projection (ce qui n'est pas le cas de votre premier code: CreatePoint (311253,223720)
Si la table est créée en Lambert1, les x,y des points que vous y injectez doivent aussi être en Lambert1 et vous devez forcer avant l'utilisation de cette projection par Set CoordSys Table pointS

ps: n'oubliez pas que la projection de la carte devient celle du raster quand il y en a un ! Votre image n'est probablement pas en Lambert1 (regardez son TAB) et c'est pourquoi les coordonnées que vous obtenez sont celle du point introduit en Lambert1 ...mais traduites dans la projection du raster

re ps: pas besoin de tant de points d'exclamation dans le titre du sujet !!!!!!!!!

Hors ligne

 

Pied de page des forums

Powered by FluxBB