2017-02-12 2 views
0

Ich habe eine App, die eine API verbrauchen. Ich habe absolut keine Kontrolle über diese API, also kann ich sie nicht ändern, nur konsumieren. Diese API gibt im JSON-Format einen Städtenamen, Breiten- und Längengrad zurück. Das Problem besteht darin, dass durch einen Programmierfehler, die API Rückkehr Breiten- und Längen mit falschem Format:Wie Format Zeichenfolge mit Javascript?

[{"Name":"River Side","Latitude":-2524544568.0,"Longitude":-5758220052.0}] 

obviouly ich die Breite und Länge mit folgendem Format benötigen:

-25.245445680 and -57.582200520 

ich Javascript-Funktionen gefunden wieFixed(), aber runde die Zahl.

Weiß jemand, wie ich die Zeichenkette mit Javascript richtig formatieren kann?

+0

Warum wird diese API nicht an erster Stelle debuggt? Also, dass lat/long korrekt sind? Hast du eine Anfrage an die Entwickler gestellt? – Blauharley

+0

Wie bereits erwähnt, haben wir keine Kontrolle über die API, die von einer anderen Gruppe von der Universität erstellt wurde. Es ist Teil einer Gruppen-/Einzelarbeit und geht es darum, Lösungen für Probleme zu finden, die wir nicht von Grund auf korrigieren können. –

+0

@GuillermoAcosta Haben Sie eine akzeptable Lösung für Ihr Problem gefunden? –

Antwort

0

Sieht aus wie Länge und Breite werden als Zahlen gesendet, richtig? Wäre es möglich, etwas wie var lat = data.Latitude/100000000 zu tun?

+0

Ja, Dargue. Sie werden immer als Zahlen gesendet, sie sollten vom Float-Typ sein, aber sie werden als Zahl mit 1 Dezimalzahl gesendet. Wir dachten darüber nach Division zu machen, aber nicht alle "lat" und "lon" haben die gleiche Anzahl von Dezimalziffern. Wir wollen eine Funktion finden, die den "ganzzahligen" Teil der Zahl nimmt, und zu dieser Zahl (einschließlich ihres Vorzeichens) einen Punkt drei Ziffern von links hinzufügen. Und wir haben das Formular noch nicht gefunden. –

0

, dass in jedem Fall und für beide von lat und lon Vorausgesetzt:

  1. Das Zeichen ist richtig.
  2. Die Ziffern sind korrekt.
  3. Der Dezimalpunkt kann an der falschen Stelle sein.
  4. abs (lat) < = 90
  5. abs (lon) < = 180

am lat Beispiel der Suche (-2524544568,0): -252,4 ist ungültig. -25.2 ist plausibel. -2.52 ist plausibel, wenn Sie die Punkte nicht auf Ihr eigenes Land beschränken. So ist -0,252. Ähnlich mit der Länge.

Sie können auch das Feld "Name" verwenden, wenn Sie eine recht genaue Quelle für eine Zuordnung von Name zu (Breite, Länge) haben.

Verwandte Themen