App inventor 2 en español
Cómo programar los teléfonos móviles con Android
mediante App inventor 2 - Juan Antonio Villalpando
-- Tutorial de iniciación de App Inventor 2 en español --
Volver al índice del tutorial
____________________________
250.- Extensiones. Dentro del área. Geofence. Polígono. Cuadrilátero. Área. Perímetro. UTM.
Colabora en el mantenimiento de esta web.
- Si te gusta este sitio web y quieres colaborar en su mantenimiento, puedes donar unos 7€ o 7$ mediante este enlace de Paypal:
- A los colaboradores les envío varios de mis tutoriales prácticos y sencillos sobre el Internet de las Cosas, controlar dispositivos desde Internet. Muy interesantes. |
com.KIO4_Geofence.aix
- Estableceremos un área en un Mapa mediante las coordenadas de latitud y longitud de los vértices del polígono.
- Consultaremos si un punto con cierta latitud y longitud se encuentra dentro de ese área.
- Se puede realizar con polígonos convexos y cóncavos.
Convexo
|
Cóncavo |
_____________________________________
0.- Funcionamiento de la extensión.
- Establecemos los vértices del polígono mediante sus latitudes y longitudes ordenados en el sentido de las agujas del reloj,
lat1,long1,lat2,long2,lat3,long3,lat4,long4,lat5,long5,...
Ejemplo:
listLatLong = (lista desde registro csv)
36.50311,-6.27279,36.50228,-6.27234,36.50202,-6.27307,36.50286,-6.27352,36.50256,-6.272958
- Lo convertimos a lista mediante lista desde registro csv, como indico en la siguiente imagen.
- Añadimos la latitud y longitud de un punto en formato decimal, por ejemplo: 36.5025 y -6.2728
- Obtendremos true o false, según el punto esté dentro o fuera del polígono.
- En los siguentes ejemplos también utilizaremos los componentes LineString y Polygon, observa las distintas formas de poner las coordenadas:
listLatLong = (lista desde registro csv)
36.50311,-6.27279,36.50228,-6.27234,36.50202,-6.27307,36.50286,-6.27352,36.50256,-6.27295
Polygon.PointsFromString =
[[36.50311,-6.27279], [36.50228,-6.27234], [36.50202,-6.27307], [36.50286,-6.27352], [36.50256,-6.272958]]
LineFromString=
[[36.50311,-6.27279], [36.50228,-6.27234], [36.50202,-6.27307], [36.50286,-6.27352], [36.50256,-6.272958],[36.50311,-6.27279]]
- Mediante el bloque StringCoded, se puede cambiar las coordenadas añadiendo corchetes:
(observa que es conveniente poner la misma coordenada inicial y final)
36.50311,-6.27279,36.50228,-6.27234,36.50202,-6.27307,36.50286,-6.27352,36.50256,-6.27295,36.50311,-6.27279
[[36.50311,-6.27279], [36.50228,-6.27234], [36.50202,-6.27307], [36.50286,-6.27352], [36.50256,-6.272958],[36.50311,-6.27279]]
_____________________________________
1.- Una marca se mueve horizontalmente.
p150_extension_Geo_Futbol.aia
- Una marca se mueve horizontalmente en una Etiqueta aparece true o false, cuando la marca esté dentro o fuera del Polígono.
- Dibujaremos las líneas que forman el perímetro del Polígono con el bloque LineFromString, observa que el primer punto y el último deben ser iguales:
LineFromString=
[[36.50311,-6.27279], [36.50228,-6.27234], [36.50202,-6.27307], [36.50286,-6.27352], [36.50256,-6.272958],[36.50311,-6.27279]]
_____________________________________
- Diseño.
_____________________________________
- Bloques.
_____________________________________
- Comentarios.
- Además con el bloque TapAtPoint, al pulsar sobre el mapa obtendremos true o false, según la pulsación sea dentro o fuera del Polígono.
- También podemos rellenar un Polígono en este caso amarillo, mediante el bloque Polygon.PointsFromString
- Pero sobre este Polígono no funcionará las pulsaciones del Map.TapAtPoint
- Fíjate que para dibujar el área del Polígono tenemos que indicar los vértices, pero no es necesario repetir al final el último punto como vimos con el LineFromString.
Polygon.PointsFromString =
[[36.50311,-6.27279], [36.50228,-6.27234], [36.50202,-6.27307], [36.50286,-6.27352], [36.50256,-6.272958]]
_____________________________________
__________________________________________________________________
2.- Cuadrilátero.
p150_extension_Geo_cuadrilatero.aia
- En el caso particular que el polígono sea un cuadrilátero también podemos utilizar el bloque Quadrilateral.
- En el siguente ejemplo se obtiene:
un true en el punto rojo que está dentro del cuadrilátero y
un false en el punto verde que está fuera del cuadrilátero.
_____________________________________
- Diseño.
_____________________________________
- Bloques.
_____________________________________
__________________________________________________________________
3.- Distancia. Perímetro. Área.
p150_extension_Geo_perimetro.aia
- Con los siguientes bloques podemos calcular la Distancia entre dos puntos, indicando su latitud y longitud. El perímetro y el área del polígono, debemos indicar las coordenadas de sus vértices.
- Si dejamos un par de segundos los dedos sobre una marca y la movemos, la podemos arrastrar y obtener la nueva distancia entre marcas.
_____________________________________
- Diseño.
_____________________________________
- Bloques.
- Observa las distintas formas de establecer las coordenadas:
listLatLong = (lista desde registro csv)
36.50311,-6.27279,36.50228,-6.27234,36.50202,-6.27307,36.50286,-6.27352,36.50256,-6.27295
Polygon.PointsFromString =
[[36.50311,-6.27279], [36.50228,-6.27234], [36.50202,-6.27307], [36.50286,-6.27352], [36.50256,-6.272958]]
LineFromString=
[[36.50311,-6.27279], [36.50228,-6.27234], [36.50202,-6.27307], [36.50286,-6.27352], [36.50256,-6.272958],[36.50311,-6.27279]]
https://geographiclib.sourceforge.io/cgi-bin/Planimeter?type=polygon&rhumb=geodesic
_____________________________________
__________________________________________________________________
4.- Conversor UTM. Zona.
p150_extension_Geo_utm.aia
- Información sobre UTM:
http://www.elgps.com/documentos/utm/coordenadas_utm.html
- UTM divide la superficie de nuestro planeta en zonas rectangulares, por ejemplo zona 29S.
- Con los siguientes bloques vamos a realizar conversiones entre coordenadas sexagesimales y utm.
- Pulsa sobre el Mapa.
- Aquí tenemos un conversor online de lat long a UTM:
https://www.latlong.net/lat-long-utm.html
_____________________________________
- Diseño.
_____________________________________
- Bloques.
- Lat lot a UTM
https://www.latlong.net/lat-long-utm.html
_____________________________________
__________________________________________________________________
5.- En Kodular con los Mapas de Google.
- En Kodular podemos utilizar los Mapas de Google.
p150_extension_Geo_Futbol_kodular.aia
_____________________________________
- Diseño.
_____________________________________
- Bloques.
___________________________
|