Google Maps Anzeige aller Bars, Clubs, Pubs

  • Antworten:5
Sigi P.
  • Forum-Beiträge: 7

18.05.2016, 23:34:37 via Website

Hallo liebe Entwickler,

ich stehe vor einer Problemstellung und hoffe mir kann geholfen werden ^^ Ich bin ein Anfänger in Sachen Apps programmieren.

Ich entwickle gerade eine App mit einer GoogleMaps Funktion.

Aufgabe: Wenn man auf das "Maps" Symbol klickt, dann soll sich eine GoogleMap Karte öffnen und mir:

  1. Automatisch auf meinen derzeitigen Standort ranzoomen
  2. von vorne heraus, alle Bars, Clubs, Lokale, Pubs in der nähe anzeigt.

Nummer 1, also dass die App automatisch auf meinen derzeitigen Standort ranzoomt funktioniert. Jetzt fehlt nur noch selbst ausgewählte "Places" angezeigt werden.

Kennt jemand eine Lösung für das Problem?

Ich habe bereits "Google Place Picker API" ausprobiert. Bei der PlacePickerAPI sehe ich meine derzeitige Position und auch alles was in der Nähe ist, aber ich möchte nur die Bars, Clubs, Lokale, Pubs angezeigt bekommen. Laut den Foren ist dies aber bei der "PlacePickerAPI" nicht möglich..

— geändert am 03.06.2016, 16:18:22

Antworten
Haakon T.
  • Forum-Beiträge: 375

19.05.2016, 12:08:04 via Website

Sigi P.

Hätte jemand vielleicht hilfreiche Links, denn ich wüsste nicht das Stichwort für meine Problemstellung, oder würde jemand den Code aus dem Kopf heraus können? Würde mich auf jeden Fall freuen.

Hast du dir mal die Api Referenz von Google dazu angeschaut? Da findet sich ja so einiges, was man in dem use case gebrauchen könnte. Außerdem würde ich mal die Beispiele auf github studieren.

Antworten
Sigi P.
  • Forum-Beiträge: 7

03.06.2016, 16:10:15 via Website

Danke für die Antwort.

Habe bis jetzt viel gesucht und jedoch nichts brauchbares gefunden.

Bin immer noch auf der Suche nach dem Code der beim öffnen von "GoogleMaps" nur Restaurants und Bars anzeigt.

Antworten
pepperonas
  • Forum-Beiträge: 434

03.06.2016, 17:30:27 via Website

Die Projektionskamera der Map hat eine Zoomfunktion. Damit kannst du an deinen aktuellen Ort zoomen.
Zur Positionsbestimmung nutzt du am besten den ApiClient (LocationRequest).
Hab vor Kurzem ein ähnliches Projekt (hier auf Github) gemacht, da kannst du dich gerne bedienen.
;)

Open Source

Antworten
Sigi P.
  • Forum-Beiträge: 7

03.06.2016, 18:18:08 via Website

Ich habe bereits ein Programm geschrieben welches die derzeitige Position des Nutzers ranzoomt und anzeigt beim starten von Google Maps.

Ich suche jetzt einen code damit auch in einem Radius z.B. NUR Restaurants angezeigt werden.

Hättest du da eine idee?

Antworten
pepperonas
  • Forum-Beiträge: 434

04.06.2016, 01:02:31 via Website

Hi, ja, ist ein bisschen tricky, aber hier kurz ein Überblick:
Vermutlich wirst du deine Geo-coords in Meter umrechnen wollen, um in der Nähe befindliche POIs zu suchen.
Da die Erde an den Polen zusammenläuft, muss man die Längengerade bei der Berechnung besonders berücksichtigen (falls es nicht klar ist, was ich meine, schau dir einen Globus an und beachte, dass der Abstand zwischen den Längengraden an Polnähe geringer ist als am Äquator.)

Um hier einen Bereich zu "filtern" habe ich für jede Dimension einen min und einen max Wert. Sprich es entsteht ein Rechteck (bzw. wenn bei den Parameter "Lat = Lng" gilt entsteht dementsprechend ein Quadrat), das letztlich das Suchfenster darstellt.
Hierzu der Code:

public static double[] getSearchArea(final double latitude, final double longitude, final int distanceInMeters) {

double[] area = new double[4];

final double latRadian = Math.toRadians(latitude);

final double degLatKm = 110.574235;
final double degLngKm = 110.572833 * Math.cos(latRadian);
final double deltaLat = distanceInMeters / 1000.0 / degLatKm;
final double deltaLong = distanceInMeters / 1000.0 / degLngKm;

final double minLat = latitude - deltaLat;
final double minLng = longitude - deltaLong;
final double maxLat = latitude + deltaLat;
final double maxLng = longitude + deltaLong;

area[0] = minLat;
area[1] = minLng;
area[2] = maxLat;
area[3] = maxLng;

return area;
}

Nun kannst du deine Datenbank mit den Werten des Arrays auslesen (die returnten Werte im Array entsprechen den Eckpunkten deines Fensters).
Sprich: deine Query sollte dann so aussehen, dass du auf größer bzw. kleiner prüfst und somit die in der Nähe liegenden Datensätze bekommst...

Open Source

Antworten