Klingt ziemlich spaßig, da du erstmal wissen musst, wie deine Koordinaten referenziert wurden - sprich welches Referenzsystem und welches Referenzellipsoid zu deinen Koordinaten gehört.
Wenn das dann nicht zur Ziel-API passt, musst du umrechnen - und das wird richtig brutal. Wenn du das nicht tust, liegst du bestenfalls nur einige 100m daneben, im schlimmsten Fall kommt totaler Müll dabei raus.
Davon abgesehen sollte das System die Entfernungen der Städte zu den Referenzkoordinaten gleich mitliefern, denn eine händische genaue Berechnung bedeutet weitere extreme Klimmzüge.
Außerdem solltest du darauf schauen, wie die entsprechenden Systeme arbeiten. Städte haben natürlich entsprechend ihrer Größe eine andere räumliche Ausdehnung und sind stellenweise recht eigenartig geformt. Wenn das entsprechende System eine Stadt nur mit einer Koordinate darstellt und die räumliche Ausdehnung nicht weiter berücksichtigt, könntest du sehr eigenartige Treffer bekommen. Das solltest du auf jeden Fall prüfen. Sonst könnte es z.B. vorkommen, dass ein Punkt im Berliner Stadtrand zu meintwegen Kleinkleckersdorf gezählt wird, weil es natürlich geographisch näher ist als das Zentrum von Berlin. Mal so als doofes Beispiel.
Zur eigentlichen Problemstellung kann ich leider nichts beitragen, ich hoffe aber dir ein paar wichtige Denkanstöße geben zu können.