Tengo ya esta pregunta en ASÍ, así que disculpas si la reproducción de este es de mala forma. Voy a vincular a cada uno de los sitios si puedo obtener la respuesta correcta...
http://stackoverflow.com/questions/5479589/how-to-group-points-of-interest-by-lat-lon-for-my-wp7-app
Tengo una colección de mis propios PointOfInterest
clases (aprox. 1500) tienen cada uno sus propios Latitude
y Longitude
doble propiedades.
Estoy tratando de dibujar en la pantalla de mi, pero a una cierta lógica en el nivel de zoom, no hay ningún punto que muestra algunos de ellos, porque ellos están tan cerca.
¿Cómo puedo de manera muy eficiente grupo de puntos de interés por sus lat lon propiedades?
Tengo este tipo de cosas:
var pointOfInterests = (from p in PointsOfInterest select p).Distinct(new EqualityComparer()).ToList();
donde la EqualityComparer
está:
public class EqualityComparer : IEqualityComparer<PointOfInterest>
{
public bool Equals(PointOfInterest x, PointOfInterest y)
{
return Math.Round(x.Latitude.Value, PointOfInterest.DecimalPlaceFilterLevel) == Math.Round(y.Latitude.Value, PointOfInterest.DecimalPlaceFilterLevel) &&
Math.Round(x.Longitude.Value, PointOfInterest.DecimalPlaceFilterLevel) == Math.Round(y.Longitude.Value, PointOfInterest.DecimalPlaceFilterLevel);
}
public int GetHashCode(PointOfInterest obj)
{
return Math.Round(obj.Latitude.Value, PointOfInterest.DecimalPlaceFilterLevel).GetHashCode() ^ Math.Round(obj.Longitude.Value, PointOfInterest.DecimalPlaceFilterLevel).GetHashCode();
}
}
y el PointOfInterest.DecimalPlaceFilterLevel
es un static int propiedad que me puse cuando el usuario está en un ciertas nivel de zoom.
Pero esto no es trabajo, sigo recibiendo la superposición de puntos de interés y su no muy rápido... desde que estoy en el teléfono, la necesito para llevar a cabo muy bien.
Gracias por cualquier ayuda que se le puede dar