Omrekenen coordinaten vice versa
Pagina: « vorige 1 2 3 4 5 volgende »
Maar snap je nu wel wat je fout doet? ( Zie anders mijn vorige reactie )
Functions zijn toch wel een van de basale zaken in PHP....
Ivo P op 08/11/2023 09:42:28:
Je plaatst al meer dan 2 jaar posts op dit forum.
Functions zijn toch wel een van de basale zaken in PHP....
Functions zijn toch wel een van de basale zaken in PHP....
Als je goed kijkt is het meer: Geef mij svp een werkende script met minimale info.
Je zou haast voorstellen: hier heb je een tikke a x uur ;-)
Alvast bedankt voor alles.
Maar is het nu opgelost?
Ik weet dat ik een leek ben, en aangezien de ouderdom kan ik niet zo vlug alles opslaan.
Dank bij voorbaat
Als je stopt, bereik je nog niks.
De adviezen zijn wel al diverse keren gegeven, alleen gebeurd er niks mee ( vinden wij zonde van onze tijd, mede omdat wij je proberen te helpen )
Ik heb je zelfs uitgelegd in een paar posts terug waarom het fout gaat ( begrijpen van de code en de werking ervan ).
Hierbij nogmaals de code zoals ik het bedoelde... splits de functies op..:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
function BeforeProcessRowList(&$data, $pageObject){
$dmsLatitude=$data["Breedtegraad"];
$dmsLongitude=$data["Lengtegraad"];
$coordinates = DMSToDecimal($dmsLatitude . " " . $dmsLongitude);
if ($coordinates) {
$latitude = $coordinates['latitude'];
$longitude = $coordinates['longitude'];
echo "Breedtegraad (decimaal): $latitude<br>";
echo "Lengtegraad (decimaal): $longitude<br>";
} else {
echo "Ongeldige DMS-cordinaten.";
}
return true;
}
function DMSToDecimal($dms) {
echo $dms ;
preg_match('/([NS])(\d+) (\d+\.\d+)/', $dms, $latMatches);
preg_match('/([EW])(\d+) (\d+\.\d+)/', $dms, $lonMatches);
if (!empty($latMatches)) {
$latDirection = $latMatches[1];
$latDegrees = (float)$latMatches[2];
$latMinutes = (float)$latMatches[3];
$latitude = ($latDirection === 'N') ? ($latDegrees + ($latMinutes / 60)) : -($latDegrees + ($latMinutes / 60));
} else {
return false; // Invalid latitude format
}
if (!empty($lonMatches)) {
$lonDirection = $lonMatches[1];
$lonDegrees = (float)$lonMatches[2];
$lonMinutes = (float)$lonMatches[3];
$longitude = ($lonDirection === 'E') ? ($lonDegrees + ($lonMinutes / 60)) : -($lonDegrees + ($lonMinutes / 60));
} else {
return false; // Invalid longitude format
}
return ['latitude' => $latitude, 'longitude' => $longitude];
}
$dmsLatitude=$data["Breedtegraad"];
$dmsLongitude=$data["Lengtegraad"];
$coordinates = DMSToDecimal($dmsLatitude . " " . $dmsLongitude);
if ($coordinates) {
$latitude = $coordinates['latitude'];
$longitude = $coordinates['longitude'];
echo "Breedtegraad (decimaal): $latitude<br>";
echo "Lengtegraad (decimaal): $longitude<br>";
} else {
echo "Ongeldige DMS-cordinaten.";
}
return true;
}
function DMSToDecimal($dms) {
echo $dms ;
preg_match('/([NS])(\d+) (\d+\.\d+)/', $dms, $latMatches);
preg_match('/([EW])(\d+) (\d+\.\d+)/', $dms, $lonMatches);
if (!empty($latMatches)) {
$latDirection = $latMatches[1];
$latDegrees = (float)$latMatches[2];
$latMinutes = (float)$latMatches[3];
$latitude = ($latDirection === 'N') ? ($latDegrees + ($latMinutes / 60)) : -($latDegrees + ($latMinutes / 60));
} else {
return false; // Invalid latitude format
}
if (!empty($lonMatches)) {
$lonDirection = $lonMatches[1];
$lonDegrees = (float)$lonMatches[2];
$lonMinutes = (float)$lonMatches[3];
$longitude = ($lonDirection === 'E') ? ($lonDegrees + ($lonMinutes / 60)) : -($lonDegrees + ($lonMinutes / 60));
} else {
return false; // Invalid longitude format
}
return ['latitude' => $latitude, 'longitude' => $longitude];
}
Gewijzigd op 08/11/2023 10:06:18 door E vH
bedankt dat je dit wil doen.
Kort uitgelegd , ik werk via phprunner en in dit programma kan je niet onder de functie function BeforeProcessRowList(&$data, $pageObject) gaan schrijven , enkel door de eventslist manueel aan te passen, maar zodra je iets wijzigt wordt dit ook herschreven. Zo probeer ik iets te leren van php, en nogmaals op mijn ouderdom gaat alles niet zo vlug meer in het kopje.
Daarom vroeg ik ook of het mogelijk is om de function DMSToDecimal($dms) om te vormen in een klein scriptje , zodat het onder de function BeforeProcessRowList(&$data, $pageObject)kan blijven staan.
Maar alvast heel erg bedankt voor alle moeite die je steekt in deze leek.
if (!function_exists()) {}
kunnen zeggen, maar dat maak het script niet beter.
En wat phprunner zou zijn? Geen idee, maar klinkt niet best
Berta, probeer dit eens:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
function BeforeProcessRowList(&$data, $pageObject)
{
if(!function_exists('DMSToDecimal')) {
function DMSToDecimal($dms) {
echo $dms ;
preg_match('/([NS])(\d+) (\d+\.\d+)/', $dms, $latMatches);
preg_match('/([EW])(\d+) (\d+\.\d+)/', $dms, $lonMatches);
if (!empty($latMatches)) {
$latDirection = $latMatches[1];
$latDegrees = (float)$latMatches[2];
$latMinutes = (float)$latMatches[3];
$latitude = ($latDirection === 'N') ? ($latDegrees + ($latMinutes / 60)) : -($latDegrees + ($latMinutes / 60));
} else {
return false; // Invalid latitude format
}
if (!empty($lonMatches)) {
$lonDirection = $lonMatches[1];
$lonDegrees = (float)$lonMatches[2];
$lonMinutes = (float)$lonMatches[3];
$longitude = ($lonDirection === 'E') ? ($lonDegrees + ($lonMinutes / 60)) : -($lonDegrees + ($lonMinutes / 60));
} else {
return false; // Invalid longitude format
}
return ['latitude' => $latitude, 'longitude' => $longitude];
}
}
$dmsLatitude=$data["Breedtegraad"];
$dmsLongitude=$data["Lengtegraad"];
$coordinates = DMSToDecimal($dmsLatitude . " " . $dmsLongitude);
if ($coordinates) {
$latitude = $coordinates['latitude'];
$longitude = $coordinates['longitude'];
echo "Breedtegraad (decimaal): $latitude<br>";
echo "Lengtegraad (decimaal): $longitude<br>";
} else {
echo "Ongeldige DMS-cordinaten.";
}
return true;
}
{
if(!function_exists('DMSToDecimal')) {
function DMSToDecimal($dms) {
echo $dms ;
preg_match('/([NS])(\d+) (\d+\.\d+)/', $dms, $latMatches);
preg_match('/([EW])(\d+) (\d+\.\d+)/', $dms, $lonMatches);
if (!empty($latMatches)) {
$latDirection = $latMatches[1];
$latDegrees = (float)$latMatches[2];
$latMinutes = (float)$latMatches[3];
$latitude = ($latDirection === 'N') ? ($latDegrees + ($latMinutes / 60)) : -($latDegrees + ($latMinutes / 60));
} else {
return false; // Invalid latitude format
}
if (!empty($lonMatches)) {
$lonDirection = $lonMatches[1];
$lonDegrees = (float)$lonMatches[2];
$lonMinutes = (float)$lonMatches[3];
$longitude = ($lonDirection === 'E') ? ($lonDegrees + ($lonMinutes / 60)) : -($lonDegrees + ($lonMinutes / 60));
} else {
return false; // Invalid longitude format
}
return ['latitude' => $latitude, 'longitude' => $longitude];
}
}
$dmsLatitude=$data["Breedtegraad"];
$dmsLongitude=$data["Lengtegraad"];
$coordinates = DMSToDecimal($dmsLatitude . " " . $dmsLongitude);
if ($coordinates) {
$latitude = $coordinates['latitude'];
$longitude = $coordinates['longitude'];
echo "Breedtegraad (decimaal): $latitude<br>";
echo "Lengtegraad (decimaal): $longitude<br>";
} else {
echo "Ongeldige DMS-cordinaten.";
}
return true;
}
Maar de vraag is of je dat echt wilt gebruiken? Eigenlijk is het juist van belang met PHP dat je zelf weet wat je doet, wat je script doet, en wat er in het script gebeurd. Met een code generator sla je deze stappen over, en heb je geen controle over je code. Misschien zit er zelfs een gigantisch veiligheidslek in? of is de code niet efficiënt opgebouwd.
Ik vind zelf dat deze oplossing van E vH de beste is. Gewoon twee losse functies definiëren. Want waarom zou je die functie herhalend en dus steeds opnieuw willen opbouwen?
Als mensen aangeven dat ze moeite hebben met programmeren, en dit liever niet lijken te willen. Dan is mijn advies om een kant-en-klaar pakket te zoeken die moet doen wat het moet doen. Misschien een site in Wordpress met een plug-in, of desnoods een script (tegen betaling) laten maken. Maar in dat laatste geval moet je ook rekening houden dat dit ook tijd en vaak ook geld kan kosten, omdat je van iemand iets vraagt.
Gewijzigd op 08/11/2023 10:33:14 door - Ariën -
Ga maar na; iemand wilt een webshop hebben... 0 programmeerkennis... gaat zoeken online... je komt er diverse tegen.
Men denkt: kost mij x per maand.. prima. Prijs, plaatje, omschrijving, titel. done. (lang leve seo)
Luxe pakketten: voorraad, mailservice blablablabla....... (oehh mogelijkheden!)
Webshop groeit, vervolgens: ik mis dit, dat zus zo. zit vast aan een pakket en terug bij af of je wordt uitgekleed waar je bij staat. Men denkt niet aan een programmeur met ervaring. Klinkt ook duur en ver weg want programmeurs zijn eng.
Niemand staat echt stil bij een totaalsysteem, wat er bij komt kijken... echt onderzoek doen... zit er niet meer bij.
Men staat vervolgens stil en accepteert het en betaald de hoofdprijs.. of start volledig opnieuw en blijft in die lus zitten.
Wat dat betreft is het internet... verschrikkelijk ;-)
- Ariën - op 08/11/2023 10:30:49:
Maar in dat laatste geval moet je ook rekening houden dat dit ook tijd en vaak ook geld kan kosten, omdat je van iemand iets vraagt.
Denk je dat ik verstand heb/had van Geo locaties??
Zoals je zag in mijn posts: heb ik een referentie genomen van een website ( javawa ) die ik via google heb gevonden... de uitleg erbij, gaf mij oplossing om iets neer te ploppen... maar zonder die info.. was ik ook niet verder gekomen.
Precies zoals je zegt: kost tijd, energie en mensen staan er niet echt bij stil wat erbij komt kijken.
Voldoening is ook een soort van ... oke? denk ik dan maar... daarom wil ik ook dat Berta nu een stap verder komt.. geen idee hoe het werkt met PHPrunner, dan maar omdenken.
Berta, hopende dat je je realiseert hoe ik er in sta en wat het van "ons" vergt.
Gewijzigd op 08/11/2023 10:44:37 door E vH
Blijkbaar zonder foutmelding, maar nu krijg ik steeds "Ongeldige DMS-cordinaten."
Ongeldige DMS-cordinaten.Ongeldige DMS-cordinaten.Ongeldige DMS-cordinaten.Ongeldig
DEBUGGEN!
Wat doet een var_dump() op $coordinates?
Ivo P op 08/11/2023 10:44:07:
DEBUGGEN!
Dat werkt niet bij een leek ;-)
Even omdenken: de eerste record gaat goed maar de rest niet?
Mijn gevoel zegt mij dat het de eerste keer goed gaat, maar dat de function_exists nu wordt genegeerd waardoor de functie niet bestaat.
Gewijzigd op 08/11/2023 10:46:02 door E vH
misschien een klacht indienen bij de makers van phprunner.
var_dump = bool(false)
Edit:
Berta, als ik even snel dit volg:
https://xlinesoft.com/phprunner/docs/events.htm#working_with_events
Kun jij dan een code snippet toevoegen?
Waardoor je dus deze 2 codes: https://www.phphulp.nl/php/forum/topic/omrekenen-coordinaten-visa-versa/104816/3/#760833
Opsplitst... ( DMSfunction als codesnippet toevoegen? )
Gewijzigd op 08/11/2023 10:53:02 door E vH