2017-07-04 6 views
0

Lorsque j'utilise Google Maps sur Android que je crée une méthode pour prendre un point A et calculer si elle est à l'intérieur d'une zone de 1 km de le point B:Comment convertir en C# un code pour calculer une distance et le relèvement de google maps api

float[] results = new float[1]; 
Location.distanceBetween(centerLatitude, centerLongitude, testLatitude, 
testLongitude, results); 
float distanceInMeters = results[0]; 
boolean isWithin10km = distanceInMeters < 10000; 

Mais je dois à cette intérieur de mon API, donc j'envoyer un Lieu (Lat, long) à mon serveur, je reçois une liste des lieux et essayer de faire un match et les retourner quelque chose, le problème est, comment "déballer" le code afin que je puisse passer à C#!

Je founf la mise en œuvre de celui-ci, mais il a quelques classes appropriées que je suis sûr qu'il n'existe pas en C#! here

+0

On dirait que vous devez simplement réécrire le fichier Location.java en C#? –

+0

Eh bien, il y a beaucoup de choses qui se passent à l'intérieur de Location.java –

+0

plus probable que votre serveur reçoit chaîne sérialisée JSON (« de wraped ») avec des coordonnées LatLon. Il peut être désérialisé dans tout ce que vous voulez. Par exemple, vous pouvez utiliser [NetTopologySuite] (https://github.com/NetTopologySuite/NetTopologySuite) avec ses classes. – RusArt

Répondre

0

Je recommande que vous utilisez l'assemblage Sysetem.Device.Location (vous pouvez télécharger un nugetpackage si vous ne l'avez pas sur votre machine de here).

Vous pouvez alors effectuer les opérations suivantes en utilisant la classe GeoCoordinate:

var geo1=new GeoCoordinate(centerLatitude, centerLongitude); 
var geo2=new GeoCoordinate(testLatitude, testLongitude): 
var result=geo1.GetDistanceTo(geo2); 

Pour plus d'informations, s'il vous plaît visitez la documentation à MSDN.