Ich suche dies für eine Community Sublet-Werbung Website, aber theoretisch wäre der Algorithmus für jede lokale Suche ähnlich.Wie kann ich den dynamischen Standardradius für die Kartensuche basierend auf der Bevölkerungsdichte des Gebiets berechnen?
Je weniger der gesuchte Bereich durchsucht wird, desto höher sollte der Standardradius für die Suche sein. Auf der anderen Seite sollten Gebiete mit hoher Bevölkerungsdichte einen niedrigen Standardradius haben, um die Dinge lokal relevant zu halten.
Dies könnte eher eine mathematische Frage als eine Programmierung sein, aber Code ist sehr willkommen. Bis jetzt habe ich die Anzahl der Untervermietungen innerhalb von 15 Meilen von jeder Stadt oder jedem Dorf berechnet und diese in der Datenbank als Annäherung für die Dichte gespeichert. Ich wollte diese Nummer verwenden, um herauszufinden, wie weit die Suche gehen soll, wenn jemand nach der Stadt oder dem Dorf sucht.
Um eine vorgeschlagene Lösung zu testen, habe ich einige ungefähre Zahlen herausgezogen, die der Algorithmus aufstellen sollte. Wenn es viele Untervermietungen innerhalb von 15 Meilen von einem Punkt gibt, sagen wir 30k, möchte ich, dass der Standardradius ungefähr 3 Meilen beträgt. Wenn es nur sehr wenig 1 oder 2 gibt, sollte der Standardradius hoch bis zu 25 Meilen gehen, noch mehr Meilen, wenn es keine Orte in der Nähe gibt. Ein mittlerer Bereich mit etwa 1 Tsd. Untervermietung hätte einen Standardradius von 15 Meilen. Dies sind nur Beispiele, die Dichte wird natürlich mit einer Anzahl von Dingen in der Datenbank wachsen oder schrumpfen.
Population -> Default search radius
0 -> very high (~60 miles or more)
1 -> 25 miles
1k -> 15 miles
30k -> 3 miles
Gehe ich in die richtige Richtung? Python oder PHP wäre für code-zentrierte Antworten bevorzugt.
Danke
Hmmm, vielleicht ein k-Means Clustering-Algorithmus mit Abstand zwischen Punkten negativ für die Dichte gewichtet? –