coordinaten omrekenen

Status
Niet open voor verdere reacties.

epetzen

Gebruiker
Lid geworden
24 nov 2007
Berichten
73
Ik heb een script gevonden waarbij coordinaten worden omgerekend van RDx, RDY naar WGS84

Het script is:

Public Class Compute

Public Shared Function RD2WGS84(ByVal X As Integer, ByVal Y As Integer)

Dim dX As Double
Dim dY As Double
Dim SomN As Double
Dim SomE As Double
Dim Latitude As String
Dim LatitudeGraden As Integer
Dim LatitudeMinuten As String
Dim Longitude As Double
Dim LongitudeGraden As Integer
Dim LongitudeMinuten As String

dX = (X - 155000) * 10 ^ -5
dY = (Y - 463000) * 10 ^ -5

SomN = (3235.65389 * dY) + (-32.58297 * dX ^ 2) + (-0.2475 * dY ^ 2) + (-0.84978 * dX ^ 2 * dY) + (-0.0655 * dY ^ 3) + (-0.01709 * dX ^ 2 * dY ^ 2) + (-0.00738 * dX) + (0.0053 * dX ^ 4) + (-0.00039 * dX ^ 2 * dY ^ 3) + (0.00033 * dX ^ 4 * dY) + (-0.00012 * dX * dY)
SomE = (5260.52916 * dX) + (105.94684 * dX * dY) + (2.45656 * dX * dY ^ 2) + (-0.81885 * dX ^ 3) + (0.05594 * dX * dY ^ 3) + (-0.05607 * dX ^ 3 * dY) + (0.01199 * dY) + (-0.00256 * dX ^ 3 * dY ^ 2) + (0.00128 * dX * dY ^ 4) + (0.00022 * dY ^ 2) + (-0.00022 * dX ^ 2) + (0.00026 * dX ^ 5)

Latitude = 52.15517 + (SomN / 3600)
Longitude = 5.387206 + (SomE / 3600)

LatitudeGraden = Int(Latitude)
LongitudeGraden = Int(Longitude)

LatitudeMinuten = (Latitude - LatitudeGraden) * 60.0
LongitudeMinuten = (Longitude - LongitudeGraden) * 60.0

Dim Coordinate As String() = New String() {LatitudeGraden, LatitudeMinuten, LongitudeGraden, LongitudeMinuten}
Return Coordinate

End Function
End Class



Kan iemand mij helpen met dit script onder een knop te zetten waarbij hij de logitude latitude invult op de page van google maps (http://maps.google.com)

Thanks,

Peter
 
Deze functie is niet in Access gemaakt. Weet je toevalig in welke taal?
 
Ik heb hem, zo goed en kwaad als ik kon, vertaald naar een funtie die zou moeten kunnen werken... Deze functie kun je in een aparte module zetten, of op een formulier, maakt niet zoveel uit.

Public Function RD2WGS84(ByVal X As Integer, ByVal Y As Integer) As String

Dim dX As Double
Dim dY As Double
Dim SomN As Double
Dim SomE As Double
Dim Latitude As String
Dim LatitudeGraden As Integer
Dim LatitudeMinuten As String
Dim Longitude As Double
Dim LongitudeGraden As Integer
Dim LongitudeMinuten As String
Dim Coordinate As String

dX = (X - 155000) * 10 ^ -5
dY = (Y - 463000) * 10 ^ -5

SomN = (3235.65389 * dY) + (-32.58297 * dX ^ 2) + (-0.2475 * dY ^ 2) + (-0.84978 * dX ^ 2 * dY) + (-0.0655 * dY ^ 3) + (-0.01709 * dX ^ 2 * dY ^ 2) _
+ (-0.00738 * dX) + (0.0053 * dX ^ 4) + (-0.00039 * dX ^ 2 * dY ^ 3) + (0.00033 * dX ^ 4 * dY) + (-0.00012 * dX * dY)
SomE = (5260.52916 * dX) + (105.94684 * dX * dY) + (2.45656 * dX * dY ^ 2) + (-0.81885 * dX ^ 3) + (0.05594 * dX * dY ^ 3) + (-0.05607 * dX ^ 3 * dY) _
+ (0.01199 * dY) + (-0.00256 * dX ^ 3 * dY ^ 2) + (0.00128 * dX * dY ^ 4) + (0.00022 * dY ^ 2) + (-0.00022 * dX ^ 2) + (0.00026 * dX ^ 5)

Latitude = 52.15517 + (SomN / 3600)
Longitude = 5.387206 + (SomE / 3600)

LatitudeGraden = Int(Latitude)
LongitudeGraden = Int(Longitude)

LatitudeMinuten = (Latitude - LatitudeGraden) * 60
LongitudeMinuten = (Longitude - LongitudeGraden) * 60

RD2WGS84 = LatitudeGraden & "," & LatitudeMinuten & "," & LongitudeGraden & "," & LongitudeMinuten

End Function

Hij zou, als hij het doet, de x- en y coördinaten moeten hebben als invoer, en dan de string terug moeten geven.

Je krijgt dan iets als:

Me.tekstvak.Value=RD2WGS84(x-coördinaat, y-coördinaat)
Kijk maar eens wat er gebeurt...
 
Octafish,

Bedankt maar ik kom hier toch niet helemaal uit.

Ik wil deze functie uitvoeren als ik op een knop druk.

Echter kan ik deze functie niet on een click subje plaatsen.

Hoe kan ik zorgen dat hij bij een druk op de knop.

Hij de waarde van x en y omrekent en explorer opent op http://maps.google.com en of de omgereknde coordinaten in het geheugen zet of invult op deze website.

Thanks,

Peter
 
Om te beginnen: je hebt twee coördinaten nodig, die je ergens moet invullen. Dat kan via twee Inputboxen, of vanuit twee tekstvakken bijvoorbeeld, die op je formulier staan.

Laten we er voor het gemak maar even vanuit gaan, dat je de waarden op het formulier hebt ingevuld, in de teksvakken txtRDx en txtRDY.
Je bent, hopelijk, al bekend met het maken van knoppen? Je moet dus een knop hebben, waarbij je bij de eigenschap <Bij klikken> een actie laat uitvoeren.
je kunt daarvoor elke knop maken/gebruiken, dus die stap laat ik hier schieten.
Bij de VBA code van de knop moet je dus een aantal acties uitvoeren.
De code zou er dan ongeveer zo uitzien:

Code:
Dim RDx as String, RDY as String, strWGS84 as String

RDx=Me.txtRDx.Value
RDY=Me.txtRDY.Value
strWGS84 =RD2WGS84(RDx, RDY)
msgBox strWGS84

<msgBox strWGS84> staat er nu nog voor het testen; je weet uiteraard nog niet of e code gaat werken.

Als e.e.a. werkt, kun je hem vervangen door de opdracht

<FollowHyperlink "Google opdrachtregel met coördinaten">

Maar dat is weer een ander verhaal.
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan