Προς το περιεχόμενο

Προτεινόμενες αναρτήσεις

Δημοσ.
Καλησπέρα,

 

έχω ένα πίνακα ο οποίος φτιάχνεται από ένα αρχείο json που περιέχει συντεταγμένες. Αυτό που ψάχνω να βρώ είναι πώς μπορώ να εισάγω μια ενδιάμεση τιμή πχ( ανάμεσα στο array[1],array[η τιμή που θέλω],array[2]).Πιο αναλυτικά

 

ο πίνακας π έχω φτιάξει είναι ο εξής

 



{"Level":{"0":{"lat":38.889755,"lgn":-77.081756},"2":{"lat":38.890949,"lgn":-77.081886},"1":{"lat":19.445154,"lgn":19.445154},"4":{"lat":38.890911,"lgn":-77.082893},"3":{"lat":29.1680515,"lgn":29.1680515},"6":{"lat":38.89075,"lgn":-77.084739},"5":{"lat":34.02943525,"lgn":34.02943525},"8":{"lat":38.890701,"lgn":-77.085243},"7":{"lat":36.460077625,"lgn":36.460077625},"10":{"lat":38.890861,"lgn":-77.085533},"9":{"lat":37.6753893125,"lgn":37.6753893125},"12":{"lat":38.89122,"lgn":-77.085807},"11":{"lat":38.28319015625,"lgn":38.28319015625},"14":{"lat":38.89175,"lgn":-77.085899},"13":{"lat":38.587369078125,"lgn":38.587369078125},"16":{"lat":38.893379,"lgn":-77.08612},"15":{"lat":38.740293539062,"lgn":38.740293539062}, .....κοκ


 

Αυτό που ψάχνω να παίρνω ανα δύο συνεχόμενες τιμές πχ 38.889755,-77.081756 και 38.890949,-77.081886 και αφού τις "περνάω" από ένα function που μου επιστέφει την απόσταση των σημείων να προσθέτω στον πίνακα μια ενδιάμεση σε αυτή θέση με τις συντεταγμένες που βρίσκονται στο μέσω της απόστασης.

 

Αναλυτικότερα το script το οποίο δημιουργώ τον πίνακα ΧΩΡΙΣ τις ενδιάμεσες τιμές

Σε σχόλια είναι η προσπάθεια που κάνω να προσθέσω την ενδιάμεση τιμή αλλά τζίφος (την απόσταση και τα νέα σημεία τα παίρνω κανονικά απλά δεν μπορώ να τα προσθέσω ενδιάμεσα)

 

- ο μετρητής $i είναι για να μπαίνει η τιμή σαν latitude,longitude (όταν το i έχει μονή τιμή μπαίνει στον πίνακα σαν lat ενώ όταν η τιμή είναι ζυγός αριθμός μπαίνει σαν long)



 
$i++;
    if($i%2==0){
   
    $pinakas[Level][$y]['lgn']=$value;
    $old_lgn=$pinakas[Level][$y-2]['lgn'];
    $old_lat=$pinakas[Level][$y-3]['lat'];
   
   
    /*if(vincentyGreatCircleDistance($old_lat,$old_lgn,$pinakas[Level][$y-1]['lat'],$pinakas[Level][$y]['lgn'])>70){
    $count++;
    $newpoint_lat=($old_lat+$pinakas[Level][$y-1]['lat'])/2;
    $newpoint_lgn=($old_lgn+$pinakas[Level][$y]['lgn'])/2;
    $y++;
    $pinakas[Level][$y]['lat']=$newpoint_lat;
   
    $pinakas[Level][$y]['lgn']=$newpoint_lgn;
    //$old_lgn=$pinakas[Level][$y]['lgn'];
    //$old_lat=$pinakas[Level][$y]['lat'];
    } */
 
      $y++;
   
   
    //$z++;
  // $koma=" </br>";
    }else{
    $pinakas[Level][$y]['lat']=$value;
    $old_lat=$value;
   // $koma=" , ";
   
    
    
    } 
 


 

Έχει κανείς καμια ιδέα; ευχαριστώ εκ των προτέρων!
Δημοσ.

Υπάρχουν δύο λύσεις.

Η πρώτη είναι να διαβάζεις τις δύο πρώτες τιμές, να βρίσκεις την απόσταση,και μετά να περνάς σε νέο πίνακα πρώτα την μία τιμή, μετά την απόσταση και μετά την άλλη τιμή.

Η άλλη λύση είναι αν τώρα δεν θες δεύτερο πίνακα, μπορείς στον ίδιο, να διαβάζεις 2 τιμές, στην θέση της δεύτερης τιμής να περνάς την απόσταση και μετά όλα τα υπόλοιπα στοιχεία του πίνακα να πηγαίνουν μία θέση μπροστά. Αυτό μπορεί να γίνει πιο εύκολα με λίστες, αλλά αφού ξεκίνησες με πίνακα, ας το αφήσουμε.

Πάντως δεν χρειάζεται να μπλέξεις με μονά και ζυγά. Προσωπικά, προτείνω την πρώτη λύση.

Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε

Πρέπει να είστε μέλος για να αφήσετε σχόλιο

Δημιουργία λογαριασμού

Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!

Δημιουργία νέου λογαριασμού

Σύνδεση

Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.

Συνδεθείτε τώρα
  • Δημιουργία νέου...