0

Jungs Ich bin neu in dieser Karte Dinge und es funktioniert sehr gut individuell. Ich habe viele Konzepte usw. verstanden. Ich habe jedoch an dem Punkt festgefahren, dass ich keine Ahnung habe, wie man Orte, die über API abgerufen wurden, auf den statischen Karten markiert.Google Static Maps über Google Places API markieren

ist hier eine reizende HTTP-Anforderung für eine statische Karte:

https://maps.googleapis.com/maps/api/staticmap?center=40.75901,-73.98447&zoom=17&scale=2&size=640x640&maptype=roadmap&markers=color:green|label:C|40.75901,-73.98447 

ich ein bisschen detaillierter gehen lassen. Ich versuche, sie an Unity 5 arbeiten zu lassen und diese Antwort als Textur für ein 3D-Modell zu speichern. Dies ist das Ergebnis:

Engine Inside Result

So weit so gut, aber ich kann nicht darüber hinausgehen. Sagen wir, ich möchte Bushaltestellen bekommen und 3D-Bus-Station-Modelle auf die Karte setzen. Ich kann die Koordinaten der Stationen auf der Fläche bekommen. Nun, wie kann ich ein 3D-Modell auf den roten Kreis setzen?

  • weiß, dass ich das Zentrum der Kartenkoordinaten
  • Ich kenne die Koordinaten des Busbahnhofs
  • Was ich nicht weiß, ist die entsprechende 3D-Koordinaten in der Szene

Can you guys Führe mich zu einer Lösung?

PS: Ich habe einen Begriff „Mercator-Projektion“ begegnet, aber ich konnte sie nicht in mein Projekt injizieren: S

Antwort

1

Ich schlage vor, Sie die folgenden Schritte ausführen:

  1. die Grenzen der Karte zu kennen: NorthEast und SouthWest Koordinaten Ihrer Karte.
  2. Die Größe der Karte kennen: In diesem Fall setzen Sie 640x640.
  3. Machen Sie eine Funktion, die die Koordinaten der Bushaltestelle in der realen Welt in Ihre Kartenkoordinaten umwandelt.

Beispiel:

  • Ihre Grenzen sind: NE (91.5, 12.7) und SW (87.3, 8.4).
  • Ihr Bild der Karte ist 600x600 Pixel. Es bedeutet, dass wenn (0,0) in Ihr Bild der oberen linken Ecke entspricht, oder NW = (91.5, 8.4).
  • Die Breite Ihres Bildes ist 600 und es geht von West nach Ost (12.7 - 8.4) = 4.3, was bedeutet, dass jedes Pixel 4.3/600 ~ = 0.00716666666667 Einheiten in den Koordinaten abdeckt.
  • Nehmen wir an, wir haben einen Punkt in Koordinaten (88,37, 10,125) und wir wollen berechnen, in welchem ​​Pixel die Längengrad Koordinate geht: ((10.125 - 8.4)/(12.7 - 8.4)) * 600 = 241 Pixel.

Tun Sie das gleiche für das Latitude und Sie haben es. Einfach richtig?

+0

Ihre Lösung scheint zu wissen, die Grenzen der Karte Kachel ... was ist im Grunde, was OP braucht, um herauszufinden, in erster Linie. – Vanguard3000