public bool BuscarUbicacion(UbicacionGeografica punto) { int lados = this.ubicaciones.Count - 1; int j = lados - 1; bool estado = false; for (int i = 0; i < lados; i++) { if (ubicaciones[i].Longitud < punto.Longitud && ubicaciones[j].Longitud >= punto.Longitud || ubicaciones[j].Longitud < punto.Longitud && ubicaciones[i].Longitud >= punto.Longitud) { if (ubicaciones[i].Latitud + (punto.Longitud - ubicaciones[i].Longitud) / (ubicaciones[j].Longitud - ubicaciones[i].Longitud) * (ubicaciones[j].Latitud - ubicaciones[i].Latitud) < punto.Latitud) { estado = !estado; } } j = i; } return(estado); }
private UbicacionGeografica ObtenerCentro() { int sum = 0; double Lat = 0; double Lng = 0; foreach (UbicacionGeografica punto in this.ubicaciones) { sum += 1; Lat += punto.Latitud; Lng += punto.Longitud; } Lat = Lat / sum; Lng = Lng / sum; UbicacionGeografica centro = new UbicacionGeografica(Lat, Lng); return(centro); }
public void Agregar(UbicacionGeografica punto) { this.ubicaciones.Add(punto); }