Προσδιορίστε το κέντρο βάρους των πολλαπλών σημείων




Γράφω μια εφαρμογή χαρτογράφησης που γράφω σε python και θα πρέπει να πάρετε το lat / lon κέντρο βάρους του Ν σημεία. Ας πούμε ότι έχω δύο θέσεις



```
a.lat = 101
a.lon = 230

b.lat = 146
b.lon = 200

```

Να πάρει το κέντρο της δύο σημεία είναι αρκετά εύκολη χρησιμοποιώντας ένα Ευκλείδειο τύπο. Θα ήθελα να είναι σε θέση να το κάνει για περισσότερο από δύο σημεία.


Βασικά ψάχνω να κάνω κάτι σαν <http://a.placebetween.us/> όπου μπορεί κανείς να εισάγετε πολλαπλές διευθύνσεις και βρείτε το σημείο που είναι σε ίση απόσταση για όλους.
Ρίξτε μια ματιά στο αρχείο pdf στον παρακάτω σύνδεσμο. Εξηγεί πώς να εφαρμόσει [τον αλγόριθμο αεροπλάνο σχήμα που Bill η σαύρα](https://stackoverflow.com/questions/353684/determine-the-centroid-of-multiple-points#353718) αναφέρει, αλλά στην επιφάνεια μιας σφαίρας.


[αφίσα μικρογραφία και κάποιες λεπτομέρειες http://img51.imageshack.us/img51/4093/centroidspostersummary.jpg](http://img51.imageshack.us/img51/4093/centroidspostersummary.jpg)  
 
Πηγή: <http://www.jennessent.com/arcgis/shapes_poster.htm>  
 
Υπάρχει επίσης ένα [25 MB πλήρους μεγέθους PDF](http://www.jennessent.com/downloads/graphics_shapes_poster_full.pdf) διαθέσιμη για λήψη.   

Πιστωτικές πηγαίνει στο [mixdev](https://stackoverflow.com/users/6109/mixdev) για την εύρεση τη σύνδεση με την αρχική πηγή, και φυσικά να Jenness επιχειρήσεις για τη διάθεση των πληροφοριών. Σημείωση: Είμαι σε καμία περίπτωση δεν συνεργάζεται με τον συγγραφέα αυτού του υλικού.
**Για την «ορθογραφία λάθος» μέρος (Μήπως εννοείτε)**


* Θα μπορούσατε να κάνετε κάποια `LIKE`ερωτήματα στο db π.χ. `LIKE %j%e%a%n%s%`, αλλά αν θέλετε να το κάνετε καλά, θα πρέπει να χρησιμοποιήσετε μια βιβλιοθήκη αναζήτησης όπως αυτό:


	+ <https://github.com/TomLingham/Laravel-Searchy>
	+ <http://tnt.studio/blog/did-you-mean-functionality-with-laravel-scout>



> 
> Μπορείτε να δημοσιεύσετε το αρχείο ρυθμίσεων στον κατάλογο της εφαρμογής σας και να παρακάμψετε τις ρυθμίσεις, εκτελώντας php τεχνίτη πωλητή: δημοσιεύει για να αντιγράψετε τις ρυθμίσεις στο φάκελο config σας όπως searchy.php
> 
> 
> Μπορείτε να ορίσετε το προεπιλεγμένο πρόγραμμα οδήγησης που θα χρησιμοποιηθεί για τις αναζητήσεις στο αρχείο ρυθμίσεων. Οι επιλογές σας (στην παρούσα φάση) είναι: ασαφή, απλό και Levenshtein.
> 
> 
> Μπορείτε επίσης να παρακάμψετε αυτές τις μεθόδους, χρησιμοποιώντας την ακόλουθη σύνταξη κατά την εκτέλεση μιας αναζήτησης:
> 
> 
> 


Με τον καθορισμό [Levenshtein απόσταση](https://en.wikipedia.org/wiki/Levenshtein_distance) μπορείτε να finetune πόσο μακριά μια λέξη μπορεί να είναι.


* Αν χρειάζεστε καλύτερη απόδοση θα πρέπει να εξετάσει κάτι σαν `solr`ή `elasticsearch`για το έργο αυτό.


<https://wiki.apache.org/solr/SpellCheckComponent>
<https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-fuzzy-query.html>


**Για το τμήμα μετάφρασης**


Απλά θα πρέπει να έχει ένα λεξικό έτοιμο σε βάση δεδομένων ή εντοπισμό των αρχείων σας και εκτελέστε το χαμηλότερο σημείο εισόδου και αυτό. Αναμείνετε υψηλή φορές υπολογιστών τόσο για τη διόρθωση ορθογραφίας και της μετάφρασης στον κώδικά σας. γεμίστε ένα σώμα με νερό και αδειάστε το σε έναν κουβά και αφού μετρήσετε τα λίτρα διαιρέστε τα με τις φέτες του σώματος. τα παλαιότερα σώματα είχαν πολλές φορές φέτες μικρότερες σε όγκο από ότι τα πιο νέα. τρουλλινός γιώργος , υδραυλικός , αθήνα , αττική , 6932860310. απλά θα επιμερίσετε τις δαπάνες με τον απλό τρόπο που κάνουμε όταν δεν έχουμε από μηχανικό τον πίνακα με τους συντελεστές επιβάρυνσης. τρουλλινός γιώργος 6932860310 <p><strong> συνολικά: </strong></p><p>τόσο το put όσο και το post μπορούν να χρησιμοποιηθούν για τη δημιουργία.</p><p>πρέπει να ρωτήσετε "σε τι εκτελείτε τη δράση;" να διακρίνετε τι πρέπει να χρησιμοποιείτε. ας υποθέσουμε ότι σχεδιάζετε ένα api για να κάνετε ερωτήσεις. εάν θέλετε να χρησιμοποιήσετε το post τότε θα το κάνετε σε μια λίστα ερωτήσεων. εάν θέλετε να χρησιμοποιήσετε το put τότε θα το κάνετε αυτό σε μια συγκεκριμένη ερώτηση.</p><p><strong> μεγάλη και οι δύο μπορούν να χρησιμοποιηθούν, έτσι ποιο πρέπει να χρησιμοποιήσω στο restful σχεδιασμό μου: </strong></p><p>δεν χρειάζεται να υποστηρίζετε τόσο το put όσο και το post.</p><p>το οποίο χρησιμοποιείται παραμένει στο χέρι σας. αλλά θυμηθείτε να χρησιμοποιήσετε το σωστό, ανάλογα με το αντικείμενο που αναφέρετε στο αίτημα.</p><p>μερικές σκέψεις:</p><ul> <li>ονομάζετε ρητά τα αντικείμενα url που δημιουργείτε ή αφήστε το διακομιστή να αποφασίσει; εάν τους ονομάσετε τότε χρησιμοποιήστε put. εάν αφήσετε τον διακομιστή να αποφασίσει στη συνέχεια, χρησιμοποιήστε το post.</li> <li>put είναι idempotent, οπότε αν put ένα αντικείμενο δύο φορές, δεν έχει καμία επίδραση. αυτή είναι μια ιδιοκτησία της νίκαιας, οπότε θα μπορούσα να χρησιμοποιήσω το put όταν ήταν δυνατόν.</li> <li>μπορείτε να ενημερώσετε ή να δημιουργήσετε έναν πόρο με put με την ίδια διεύθυνση url αντικειμένου</li> <li>με το post μπορείτε να έχετε 2 αιτήματα που εισέρχονται ταυτόχρονα για τροποποιήσεις σε μια διεύθυνση url και μπορεί να ενημερώσουν διαφορετικά μέρη του αντικειμένου.</li> </ul><p><strong> ένα παράδειγμα: </strong></p><p> <a href="https://stackoverflow.com/questions/256349/what-are-the-best-common-restful-url-verbs-and-actions/256359#256359">έγραψα τα εξής ως μέρος μιας άλλης απάντησης σχετικά με το so</a> :</p><blockquote> <p><strong> post: </strong></p> <p>χρησιμοποιείται για την τροποποίηση και την ενημέρωση ενός πόρου</p> <pre><code>post /questions/&lt;existing\_question&gt; http/1.1 host: www.example.com/ </code></pre> <p>σημειώστε ότι το ακόλουθο είναι ένα σφάλμα:</p> <pre><code>post /questions/&lt;new\_question&gt; http/1.1 host: www.example.com/ </code></pre> <p>εάν η διεύθυνση url δεν έχει δημιουργηθεί ακόμη, δεν θα πρέπει να χρησιμοποιείτε το post για να το δημιουργήσετε ενώ καθορίζετε το όνομα. αυτό θα πρέπει να έχει ως αποτέλεσμα ένα σφάλμα 'πόρος δεν βρέθηκε' επειδή το <code>&lt;new\_question&gt;</code> δεν υπάρχει ακόμα. πρέπει πρώτα να τοποθετήσετε τον πόρο <code>&lt;new\_question&gt;</code> στον διακομιστή.</p> <p>θα μπορούσατε όμως να κάνετε κάτι τέτοιο για να δημιουργήσετε πόρους χρησιμοποιώντας post:</p> <pre><code>post /questions http/1.1 host: www.example.com/ </code></pre> <p>σημειώστε ότι σε αυτήν την περίπτωση το όνομα του πόρου δεν έχει καθοριστεί, η διαδρομή url των νέων αντικειμένων θα σας επιστραφεί.</p> <p><strong> σημειωση: </strong></p> <p>χρησιμοποιείται για τη δημιουργία ενός πόρου ή για την αντικατάστασή του. ενώ ορίσετε τους πόρους νέα διεύθυνση url.</p> <p>για έναν νέο πόρο:</p> <pre><code>put /questions/&lt;new\_question&gt; http/1.1 host: www.example.com/ </code></pre> <p>για να αντικαταστήσετε μια υπάρχουσα πηγή:</p> <pre><code>put /questions/&lt;existing\_question&gt; http/1.1 host: www.example.com/ </code></pre></blockquote> ευχαριστώ για την βοήθεια, η λύση ώστε να δουλέψει το alt+shift είναι η εξής; 

key(["mod1"], "shift\_l" , lazy.widget['keyboardlayout'].next\_keyboard()) 

έτσι δουλεύουν τώρα όλα σωστά. 
πίστευα πως το qtile θα ήταν λίγο πιο απλό μια που έχω ασχοληθεί με python και linux στο παρελθόν… είναι λίγο πε… <p>απλά χρησιμοποιήστε <a href="http://ruby-doc.org/core-1.9.3/array.html#method-i-sample"><code>array#sample</code></a> :</p><pre><code>[:foo, :bar].sample # =&gt; :foo, or :bar :-) </code></pre><p>διατίθεται σε ruby 1.9.1+. για να μπορέσετε να το χρησιμοποιήσετε με μια προηγούμενη έκδοση του ruby, θα μπορούσατε <a href="https://github.com/marcandre/backports"><code>require "backports/1.9.1/array/sample"</code></a> .</p><p>σημειώστε ότι στο ruby 1.8.7 υπάρχει κάτω από το ατυχές όνομα <code>choice</code>; μετονομάστηκε σε μεταγενέστερη έκδοση, επομένως δεν πρέπει να το χρησιμοποιήσετε.</p><p>παρόλο που δεν είναι χρήσιμη σε αυτή την περίπτωση, το <code>sample</code> δέχεται ένα όρισμα αριθμού σε περίπτωση που θέλετε μια σειρά διακριτών δειγμάτων.</p> Έχεις κάνει το τεστ από το λινκγομάγαζο να δεις το σκορ σου; Το τεστ εξετάζει σε όλο το δέντρο μαζί.


Δες τις απαντήσεις μου για το τι να κάνεις αφού έχεις τελειώσει όλα τα μαθήματα [εδώ](https://www.duolingo.com/comment/13395575). στην κατηγορία των κοινοχρήστων λαμβάνουμε υπόψη το εμβαδόν των διαμερισμάτων. έχουμε πχ 3 διαμερίσματα που το άθροισμα των τετραγωνικών τους 500 ( 100 τμ , 200 τμ , 200 τμ) πρώτο λέμε λοιπόν το 500 στο 1000 χωράει 1000/500=2 , άρα το πρώτο είναι 100 χ2 = 200 χιλιοστά. το δεύτερο είναι 200 χ2= 400 χιλιοστά. το τρίτο είναι 200 χ2 = 400 χιλιοστά. και επαληθεύουμε με την πρόσθεση των χιλιοστών 200 400 400 = 1000 χιλιοστά. στην κατηγορία της θέρμανσης λαμβάνουμε υπόψην τις θερμίδες των σωμάτων του κάθε διαμερίσματος . στην κατηγορία του ασανσέρ έχουμε συνδυασμό ορόφου και εμβαδού. τρουλλινός γιώργος 6932860310 υδραυλικές εργασίες σε όλη την αθήνα - αττική , ραφήνα, ανάβυσσο, γκύζη, χολαργός, ασπρόπυργος τότε βάλτε το βράδυ μερικές φορές πάνω στο σιφώνι ένα πανί και ένα βάρος για να βεβαιωθείτε ότι τα νερά είναι από το σιφόνι ή όχι. τρουλλινός γιώργος , υδραυλικός , αθήνα , αττική , 6932860310. μια πολύ απλή τακτική παρόμοια με την δική σας, είναι να πάρετε τα εμβαδόν του κάθε διαμερίσματος και αφού τα κάνετε μία πρόσθεση όλα μαζί το με αποτέλεσμα της πρόσθεσης πχ 800 τμ να διαιρέσετε τον αριθμό 1000 και με τον αριθμό που θα βρείτε πχ το 1,25 να πολλαπλασιάσετε το εμβαδόν του κάθε διαμερίσματος για το μετατρέψετε σε χιλιοστά. μετά με βάση τα χιλιοστά του 1ου διαμερίσματος πχ 200 και έξοδα 500 ευρώ διαιρείτε τα 500 ευρώ με τον αριθμό 1000 και πολλαπλασιάζετε με τα 200 χιλιοστά 500ευρώ/1000=0,5 χ 200χιλ = 100 ευρώ και το ίδιο και για τα άλλα. τώρα τα κλειστά διαμερίσματα αφού με τον τρόπο αυτό βρείτε πόσο οφείλουν θα τα χρεώσετε μόνο το 30% το υπόλοιπο 70 πχ 150 ευρώ θα το ξαναμοιράσετε σε όλα ξανά με το ίδιο τρόπο. αν θέλετε μπορείτε να εγγραφείτε στην δωρεάν on line έκδοση κοινοχρήστων που έχω στην ιστοσελίδα και να τα βγάλετε από εκεί. τρουλλινός γιώργος , υδραυλικός , αθήνα , αττική , 6932860310.