|     Inicio    |   |         |  |   FOROS      |  |      |      
   Elastix - VoIP B4A (Basic4Android) App inventor 2 PHP - MySQL
  Estación meteorológica B4J (Basic4Java) ADB Shell - Android Arduino
  Raspberry Pi Visual Basic Script (VBS) FireBase (BD autoactualizable) NodeMCU como Arduino
  AutoIt (Programación) Visual Basic Cosas de Windows Webs interesantes
Translate:
Búsqueda en este sitio:


.

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.

___________________________

 

- Mi correo:
juana1991@yahoo.com
- KIO4.COM - Política de cookies. Textos e imágenes propiedad del autor:
© Juan A. Villalpando
No se permite la copia de información ni imágenes.
Usamos cookies propias y de terceros que entre otras cosas recogen datos sobre sus hábitos de navegación y realizan análisis de uso de nuestro sitio.
Si continúa navegando consideramos que acepta su uso. Acepto    Más información