{"id":3278,"date":"2023-04-05T20:11:28","date_gmt":"2023-04-05T18:11:28","guid":{"rendered":"https:\/\/blogs.encamina.com\/por-una-nube-sostenible\/?p=3278"},"modified":"2023-04-05T20:40:58","modified_gmt":"2023-04-05T18:40:58","slug":"trabajando-con-mapas-en-dotnet-maui","status":"publish","type":"post","link":"https:\/\/blogs.encamina.com\/por-una-nube-sostenible\/trabajando-con-mapas-en-dotnet-maui\/","title":{"rendered":"Trabajando con mapas en dotNet\u00a0MAUI"},"content":{"rendered":"<header class=\"entry-header\">\n<h1 class=\"entry-title\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-3279\" src=\"https:\/\/blogs.encamina.com\/por-una-nube-sostenible\/wp-content\/uploads\/sites\/19\/2023\/04\/mapas-maui.jpg\" alt=\"\" width=\"887\" height=\"556\" srcset=\"https:\/\/encaminablogs.wpenginepowered.com\/por-una-nube-sostenible\/wp-content\/uploads\/sites\/19\/2023\/04\/mapas-maui.jpg 887w, https:\/\/encaminablogs.wpenginepowered.com\/por-una-nube-sostenible\/wp-content\/uploads\/sites\/19\/2023\/04\/mapas-maui-300x188.jpg 300w, https:\/\/encaminablogs.wpenginepowered.com\/por-una-nube-sostenible\/wp-content\/uploads\/sites\/19\/2023\/04\/mapas-maui-768x481.jpg 768w, https:\/\/encaminablogs.wpenginepowered.com\/por-una-nube-sostenible\/wp-content\/uploads\/sites\/19\/2023\/04\/mapas-maui-610x382.jpg 610w\" sizes=\"auto, (max-width: 887px) 100vw, 887px\" \/><\/h1>\n<\/header>\n<div class=\"entry-meta\"><span style=\"font-size: 16px;\">Una de las novedades que se ha lanzado \u00fatimamente en <\/span><em style=\"font-size: 16px;\">dotNet MAUI<\/em><span style=\"font-size: 16px;\">\u00a0es la posibilidad de utilizar mapas. Por lo que estos d\u00edas he estado jugando un poco con todas las posibilidades que nos ofrecen \u00e9stos.<\/span><\/div>\n<div><\/div>\n<p><!--more--><\/p>\n<div class=\"entry-content\">\n<div class=\"wp-block-jetpack-markdown\">\n<h2><span class=\"ez-toc-section\" id=\"Preconfiguracion_para_utilizar_mapas\"><\/span>Preconfiguraci\u00f3n para utilizar mapas<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Para poder utilizar mapas en nuestra aplicaci\u00f3n, es necesario hacer algunas acciones previas que detallo a continuaci\u00f3n:<\/p>\n<ul>\n<li>Instalar el nuget\u00a0<em>Microsoft.Maui.Controls.Maps<\/em><\/li>\n<li>Ejecutar, desde el m\u00e9todo\u00a0<em>CreateMauiApp<\/em>\u00a0de la clase\u00a0<em>MauiProgram<\/em>,\u00a0<em>builder.UseMauiMaps<\/em><\/li>\n<\/ul>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-3283\" src=\"https:\/\/blogs.encamina.com\/por-una-nube-sostenible\/wp-content\/uploads\/sites\/19\/2023\/04\/Codigo-1-2.jpg\" alt=\"\" width=\"659\" height=\"313\" srcset=\"https:\/\/encaminablogs.wpenginepowered.com\/por-una-nube-sostenible\/wp-content\/uploads\/sites\/19\/2023\/04\/Codigo-1-2.jpg 659w, https:\/\/encaminablogs.wpenginepowered.com\/por-una-nube-sostenible\/wp-content\/uploads\/sites\/19\/2023\/04\/Codigo-1-2-300x142.jpg 300w, https:\/\/encaminablogs.wpenginepowered.com\/por-una-nube-sostenible\/wp-content\/uploads\/sites\/19\/2023\/04\/Codigo-1-2-610x290.jpg 610w\" sizes=\"auto, (max-width: 659px) 100vw, 659px\" \/>En iOS, modificar el archivo <em>info.plist<\/em>\u00a0para informar al usuario de que se va a utilizar su localizaci\u00f3n<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-3284\" src=\"https:\/\/blogs.encamina.com\/por-una-nube-sostenible\/wp-content\/uploads\/sites\/19\/2023\/04\/Codigo-2.jpg\" alt=\"\" width=\"668\" height=\"164\" srcset=\"https:\/\/encaminablogs.wpenginepowered.com\/por-una-nube-sostenible\/wp-content\/uploads\/sites\/19\/2023\/04\/Codigo-2.jpg 668w, https:\/\/encaminablogs.wpenginepowered.com\/por-una-nube-sostenible\/wp-content\/uploads\/sites\/19\/2023\/04\/Codigo-2-300x74.jpg 300w, https:\/\/encaminablogs.wpenginepowered.com\/por-una-nube-sostenible\/wp-content\/uploads\/sites\/19\/2023\/04\/Codigo-2-610x150.jpg 610w\" sizes=\"auto, (max-width: 668px) 100vw, 668px\" \/><\/p>\n<ul>\n<li>En Android, es necesario modificar el archivo\u00a0<em>AndroidManifest.xml<\/em>\u00a0para incluir nuestro\u00a0<em>API key<\/em>\u00a0de\u00a0<em>Google Maps<\/em>\u00a0(en esta web se indica c\u00f3mo obtenerlo\u00a0<a href=\"https:\/\/developers.google.com\/maps\/documentation\/android-sdk\/get-api-key\" rel=\"nofollow\">https:\/\/developers.google.com\/maps\/documentation\/android-sdk\/get-api-key<\/a>) y permisos.<\/li>\n<\/ul>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-3285\" src=\"https:\/\/blogs.encamina.com\/por-una-nube-sostenible\/wp-content\/uploads\/sites\/19\/2023\/04\/codigo-3.jpg\" alt=\"\" width=\"1093\" height=\"312\" srcset=\"https:\/\/encaminablogs.wpenginepowered.com\/por-una-nube-sostenible\/wp-content\/uploads\/sites\/19\/2023\/04\/codigo-3.jpg 1093w, https:\/\/encaminablogs.wpenginepowered.com\/por-una-nube-sostenible\/wp-content\/uploads\/sites\/19\/2023\/04\/codigo-3-300x86.jpg 300w, https:\/\/encaminablogs.wpenginepowered.com\/por-una-nube-sostenible\/wp-content\/uploads\/sites\/19\/2023\/04\/codigo-3-1024x292.jpg 1024w, https:\/\/encaminablogs.wpenginepowered.com\/por-una-nube-sostenible\/wp-content\/uploads\/sites\/19\/2023\/04\/codigo-3-768x219.jpg 768w, https:\/\/encaminablogs.wpenginepowered.com\/por-una-nube-sostenible\/wp-content\/uploads\/sites\/19\/2023\/04\/codigo-3-610x174.jpg 610w, https:\/\/encaminablogs.wpenginepowered.com\/por-una-nube-sostenible\/wp-content\/uploads\/sites\/19\/2023\/04\/codigo-3-350x100.jpg 350w\" sizes=\"auto, (max-width: 1093px) 100vw, 1093px\" \/><\/p>\n<h2><span class=\"ez-toc-section\" id=\"Explorando_las_funcionalidades_de_los_mapas\"><\/span>Explorando las funcionalidades de los mapas<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>He creado un ejemplo en el que muestro las propiedades de los mapas que m\u00e1s \u00fatiles me han parecido, y detallo a continuaci\u00f3n:<\/p>\n<ul>\n<li><strong>IShowingUser:<\/strong>\u00a0Indica si muestra la posici\u00f3n actual del usuario.<\/li>\n<li><strong>IsScrollEnabled:<\/strong>\u00a0Utilizada para habilitar\/deshabilitar el\u00a0<em>scroll<\/em>\u00a0en el mapa, tanto horizontal como vertical.<\/li>\n<li><strong>IsTrafficEnabled:<\/strong>\u00a0Sirve para mostrar u ocultar el tr\u00e1fico dentro del mapa.<\/li>\n<li><strong>MapType:<\/strong>\u00a0Indica el tipo de mapa, pudiendo elegir entre\u00a0<em>SatelLite<\/em>,\u00a0<em>Hybrid<\/em>\u00a0y\u00a0<em>Street<\/em><\/li>\n<li><strong>Pins:<\/strong>\u00a0Colecci\u00f3n de pins que aparecen en el mapa. Permite indicar algunos valores descriptivos, como son\u00a0<em>Location<\/em>,\u00a0<em>Label<\/em>\u00a0y\u00a0<em>Address<\/em>. NOTA: Aunque existe una propiedad\u00a0<em>Type<\/em>, \u00e9sta no cambia el aspecto del pin. De hecho, para cambiar el aspecto de un pin, es necesario hacer un\u00a0<em>handler<\/em>\u00a0personalizado, tal y como veremos m\u00e1s adelante.<\/li>\n<\/ul>\n<h2><span class=\"ez-toc-section\" id=\"Moviendo_el_mapa\"><\/span>Moviendo el mapa<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>En el ejemplo que he creado, he a\u00f1adido un bot\u00f3n, con el texto\u00a0<em>Span<\/em>\u00a0que mueve el mapa al centro de Madrid. Para conseguirlo, he utilizado el m\u00e9todo\u00a0<em>MoveToRegion<\/em>\u00a0del mapa, al que hay que pasarle un\u00a0<em>MapSpan<\/em>, creado a partir de una localizaci\u00f3n (latitud y longitud) y una distancia, que puede ser creada a partir de kil\u00f3metros, metros o millas.<\/p>\n<pre><code>var location = new Location(40.416931, -3.703328); \/\/Madrid\r\nMapSpan mapSpan = MapSpan.FromCenterAndRadius(location, Distance.FromKilometers(0.5));\r\nmap.MoveToRegion(mapSpan);\r\n<\/code><\/pre>\n<h2><span class=\"ez-toc-section\" id=\"Jugando_con_el_zoom\"><\/span>Jugando con el zoom<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Para acercarnos o alejarnos a un punto del mapa, tenemos 2 opciones. Permitir el zoom y dejar al usuario que se mueva por el mapa utilizando los gestos pertinentes, o implementar el zoom program\u00e1ticamente. En el ejemplo, he a\u00f1adido dos botones para jugar con el zoom. Para conseguir acercarnos\/alejarnos a un punto, he vuelto a utilizar el m\u00e9todo\u00a0<em>MoveToRegion<\/em>, manteniendo la localizaci\u00f3n del mapa y cambiando la distancia, ampliandola o reduciendola para reducir o ampliar el zoom, respectivamente.<br \/>\nPins personalizados<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-3287\" src=\"https:\/\/blogs.encamina.com\/por-una-nube-sostenible\/wp-content\/uploads\/sites\/19\/2023\/04\/codigo-5.jpg\" alt=\"\" width=\"953\" height=\"354\" srcset=\"https:\/\/encaminablogs.wpenginepowered.com\/por-una-nube-sostenible\/wp-content\/uploads\/sites\/19\/2023\/04\/codigo-5.jpg 953w, https:\/\/encaminablogs.wpenginepowered.com\/por-una-nube-sostenible\/wp-content\/uploads\/sites\/19\/2023\/04\/codigo-5-300x111.jpg 300w, https:\/\/encaminablogs.wpenginepowered.com\/por-una-nube-sostenible\/wp-content\/uploads\/sites\/19\/2023\/04\/codigo-5-768x285.jpg 768w, https:\/\/encaminablogs.wpenginepowered.com\/por-una-nube-sostenible\/wp-content\/uploads\/sites\/19\/2023\/04\/codigo-5-610x227.jpg 610w\" sizes=\"auto, (max-width: 953px) 100vw, 953px\" \/><\/p>\n<p>Con las propiedades que nos ofrecen los mapas, no tenemos opciones de personalizar el pin de un mapa con una imagen alternativa. No obstante, podemos conseguirlo de una forma sencilla modificando el m\u00e9todo utilizado para mapear los pins a los controles nativos.<\/p>\n<p>El primer paso, es ampliar las propiedades de un pin, para poder especificar una imagen, tal y como se muestra a continuaci\u00f3n:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-3288 size-full\" src=\"https:\/\/blogs.encamina.com\/por-una-nube-sostenible\/wp-content\/uploads\/sites\/19\/2023\/04\/Codigo-6.jpg\" alt=\"\" width=\"1140\" height=\"262\" srcset=\"https:\/\/encaminablogs.wpenginepowered.com\/por-una-nube-sostenible\/wp-content\/uploads\/sites\/19\/2023\/04\/Codigo-6.jpg 1140w, https:\/\/encaminablogs.wpenginepowered.com\/por-una-nube-sostenible\/wp-content\/uploads\/sites\/19\/2023\/04\/Codigo-6-300x69.jpg 300w, https:\/\/encaminablogs.wpenginepowered.com\/por-una-nube-sostenible\/wp-content\/uploads\/sites\/19\/2023\/04\/Codigo-6-1024x235.jpg 1024w, https:\/\/encaminablogs.wpenginepowered.com\/por-una-nube-sostenible\/wp-content\/uploads\/sites\/19\/2023\/04\/Codigo-6-768x177.jpg 768w, https:\/\/encaminablogs.wpenginepowered.com\/por-una-nube-sostenible\/wp-content\/uploads\/sites\/19\/2023\/04\/Codigo-6-610x140.jpg 610w\" sizes=\"auto, (max-width: 1140px) 100vw, 1140px\" \/><\/p>\n<p>El siguiente paso ser\u00eda modificar el mapeo de estos pines para cada una de las plataformas. iOS y Android en el ejemplo que nos ocupa. Adem\u00e1s, en ambas plataformas es necesario sobreescribir el\u00a0<em>handler<\/em>\u00a0pora poder a\u00f1adir cierta funcionalidad perif\u00e9rica al mapeo de estos pines.<\/p>\n<p>En iOS se sobreescribe para modificar el m\u00e9todo que retorna la\u00a0<em>View<\/em>\u00a0para las\u00a0<em>Annotations<\/em>\u00a0del mapa.<\/p>\n<p>En Android, se hace para tener una referencia a los\u00a0<em>Markers<\/em>\u00a0del mapa, ya que est\u00e1 referencia no es accesible en un\u00a0<em>MapHandler<\/em>.<\/p>\n<p>Pod\u00e9is ver el c\u00f3digo en iOS y Android en mi blog: <a href=\"https:\/\/jorgediegocrespo.wordpress.com\/2023\/03\/20\/trabajando-con-mapas-en-dotnet-maui\/\">Trabajando con mapas en dotNet MAUI \u2013 Jorge Diego Crespo\u00a0<\/a><\/p>\n<p>Por \u00faltimo, es necesario indicarle al\u00a0<em>builder<\/em>\u00a0el\u00a0<em>handler<\/em>\u00a0que se va a utilizar para renderizar un mapa, as\u00ed c\u00f3mo modificar el\u00a0<em>mapper<\/em>\u00a0de los pins. Para ello, se a\u00f1aden las siguientes l\u00edneas en el m\u00e9todo\u00a0<em>CreateMauiApp<\/em>\u00a0del\u00a0<em>MauiProgram<\/em><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-3289\" src=\"https:\/\/blogs.encamina.com\/por-una-nube-sostenible\/wp-content\/uploads\/sites\/19\/2023\/04\/codigo-last.jpg\" alt=\"\" width=\"1029\" height=\"389\" srcset=\"https:\/\/encaminablogs.wpenginepowered.com\/por-una-nube-sostenible\/wp-content\/uploads\/sites\/19\/2023\/04\/codigo-last.jpg 1029w, https:\/\/encaminablogs.wpenginepowered.com\/por-una-nube-sostenible\/wp-content\/uploads\/sites\/19\/2023\/04\/codigo-last-300x113.jpg 300w, https:\/\/encaminablogs.wpenginepowered.com\/por-una-nube-sostenible\/wp-content\/uploads\/sites\/19\/2023\/04\/codigo-last-1024x387.jpg 1024w, https:\/\/encaminablogs.wpenginepowered.com\/por-una-nube-sostenible\/wp-content\/uploads\/sites\/19\/2023\/04\/codigo-last-768x290.jpg 768w, https:\/\/encaminablogs.wpenginepowered.com\/por-una-nube-sostenible\/wp-content\/uploads\/sites\/19\/2023\/04\/codigo-last-610x231.jpg 610w\" sizes=\"auto, (max-width: 1029px) 100vw, 1029px\" \/><br \/>\nAl igual que en otras ocasiones, el c\u00f3digo de este ejemplo est\u00e1 visible en mi blog <a href=\"https:\/\/jorgediegocrespo.wordpress.com\/2023\/03\/20\/trabajando-con-mapas-en-dotnet-maui\/\">Trabajando con mapas en dotNet MAUI \u2013 Jorge Diego Crespo<\/a>\u00a0 y disponible en mi repositorio de <em>Github<\/em>\u00a0<a href=\"https:\/\/github.com\/jorgediegocrespo\/MauiMaps\">https:\/\/github.com\/jorgediegocrespo\/MauiMaps<\/a><\/p>\n<\/div>\n<\/div>\n<!-- AddThis Advanced Settings generic via filter on the_content --><!-- AddThis Share Buttons generic via filter on the_content --><div id=\"ez-toc-container\" class=\"ez-toc-v2_0_82_2 ez-toc-wrap-center counter-hierarchy ez-toc-counter ez-toc-grey ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">Tabla de contenidos<\/p>\n<span class=\"ez-toc-title-toggle\"><a href=\"#\" class=\"ez-toc-pull-right ez-toc-btn ez-toc-btn-xs ez-toc-btn-default ez-toc-toggle\" aria-label=\"Toggle Table of Content\"><span class=\"ez-toc-js-icon-con\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #999;color:#999\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #999;color:#999\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/span><\/a><\/span><\/div>\n<nav><ul class='ez-toc-list ez-toc-list-level-1 eztoc-toggle-hide-by-default' ><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/blogs.encamina.com\/por-una-nube-sostenible\/trabajando-con-mapas-en-dotnet-maui\/#Preconfiguracion_para_utilizar_mapas\" >Preconfiguraci\u00f3n para utilizar mapas<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/blogs.encamina.com\/por-una-nube-sostenible\/trabajando-con-mapas-en-dotnet-maui\/#Explorando_las_funcionalidades_de_los_mapas\" >Explorando las funcionalidades de los mapas<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/blogs.encamina.com\/por-una-nube-sostenible\/trabajando-con-mapas-en-dotnet-maui\/#Moviendo_el_mapa\" >Moviendo el mapa<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/blogs.encamina.com\/por-una-nube-sostenible\/trabajando-con-mapas-en-dotnet-maui\/#Jugando_con_el_zoom\" >Jugando con el zoom<\/a><\/li><\/ul><\/nav><\/div>\n","protected":false},"excerpt":{"rendered":"<p>Una de las novedades que se ha lanzado \u00fatimamente en dotNet MAUI\u00a0es la posibilidad de utilizar mapas. Por lo que estos d\u00edas he estado jugando un poco con todas las posibilidades que nos ofrecen \u00e9stos.<!-- AddThis Advanced Settings generic via filter on get_the_excerpt --><!-- AddThis Share Buttons generic via filter on get_the_excerpt --><\/p>\n","protected":false},"author":212,"featured_media":3279,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[119],"tags":[],"class_list":["post-3278","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-net"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v18.2.1 (Yoast SEO v27.3) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Trabajando con mapas en dotNet\u00a0MAUI | ENCAMINA<\/title>\n<meta name=\"description\" content=\"Una de las novedades que se ha lanzado \u00fatimamente en dotNet MAUI\u00a0es la posibilidad de utilizar mapas. Por lo que estos d\u00edas he estado jugando un poco con todas las posibilidades que nos ofrecen \u00e9stos.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/jorgediegocrespo.wordpress.com\/2023\/03\/20\/trabajando-con-mapas-en-dotnet-maui\/\" \/>\n<meta property=\"og:locale\" content=\"es_ES\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Trabajando con mapas en dotNet\u00a0MAUI\" \/>\n<meta property=\"og:description\" content=\"Una de las novedades que se ha lanzado \u00fatimamente en dotNet MAUI\u00a0es la posibilidad de utilizar mapas. Por lo que estos d\u00edas he estado jugando un poco con todas las posibilidades que nos ofrecen \u00e9stos.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/jorgediegocrespo.wordpress.com\/2023\/03\/20\/trabajando-con-mapas-en-dotnet-maui\/\" \/>\n<meta property=\"og:site_name\" content=\"Por una nube sostenible\" \/>\n<meta property=\"article:published_time\" content=\"2023-04-05T18:11:28+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2023-04-05T18:40:58+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/blogs.encamina.com\/por-una-nube-sostenible\/wp-content\/uploads\/sites\/19\/2023\/04\/mapas-maui.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"887\" \/>\n\t<meta property=\"og:image:height\" content=\"556\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Jorge Diego\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Escrito por\" \/>\n\t<meta name=\"twitter:data1\" content=\"Jorge Diego\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tiempo de lectura\" \/>\n\t<meta name=\"twitter:data2\" content=\"4 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/jorgediegocrespo.wordpress.com\\\/2023\\\/03\\\/20\\\/trabajando-con-mapas-en-dotnet-maui\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/blogs.encamina.com\\\/por-una-nube-sostenible\\\/trabajando-con-mapas-en-dotnet-maui\\\/\"},\"author\":{\"name\":\"Jorge Diego\",\"@id\":\"https:\\\/\\\/blogs.encamina.com\\\/por-una-nube-sostenible\\\/#\\\/schema\\\/person\\\/db467d392da36cf2deba504fbb9eeb3e\"},\"headline\":\"Trabajando con mapas en dotNet\u00a0MAUI\",\"datePublished\":\"2023-04-05T18:11:28+00:00\",\"dateModified\":\"2023-04-05T18:40:58+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/blogs.encamina.com\\\/por-una-nube-sostenible\\\/trabajando-con-mapas-en-dotnet-maui\\\/\"},\"wordCount\":693,\"commentCount\":1,\"image\":{\"@id\":\"https:\\\/\\\/jorgediegocrespo.wordpress.com\\\/2023\\\/03\\\/20\\\/trabajando-con-mapas-en-dotnet-maui\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/blogs.encamina.com\\\/por-una-nube-sostenible\\\/wp-content\\\/uploads\\\/sites\\\/19\\\/2023\\\/04\\\/mapas-maui.jpg\",\"articleSection\":[\".NET\"],\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/jorgediegocrespo.wordpress.com\\\/2023\\\/03\\\/20\\\/trabajando-con-mapas-en-dotnet-maui\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/blogs.encamina.com\\\/por-una-nube-sostenible\\\/trabajando-con-mapas-en-dotnet-maui\\\/\",\"url\":\"https:\\\/\\\/jorgediegocrespo.wordpress.com\\\/2023\\\/03\\\/20\\\/trabajando-con-mapas-en-dotnet-maui\\\/\",\"name\":\"Trabajando con mapas en dotNet\u00a0MAUI | ENCAMINA\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/blogs.encamina.com\\\/por-una-nube-sostenible\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/jorgediegocrespo.wordpress.com\\\/2023\\\/03\\\/20\\\/trabajando-con-mapas-en-dotnet-maui\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/jorgediegocrespo.wordpress.com\\\/2023\\\/03\\\/20\\\/trabajando-con-mapas-en-dotnet-maui\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/blogs.encamina.com\\\/por-una-nube-sostenible\\\/wp-content\\\/uploads\\\/sites\\\/19\\\/2023\\\/04\\\/mapas-maui.jpg\",\"datePublished\":\"2023-04-05T18:11:28+00:00\",\"dateModified\":\"2023-04-05T18:40:58+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/blogs.encamina.com\\\/por-una-nube-sostenible\\\/#\\\/schema\\\/person\\\/db467d392da36cf2deba504fbb9eeb3e\"},\"description\":\"Una de las novedades que se ha lanzado \u00fatimamente en dotNet MAUI\u00a0es la posibilidad de utilizar mapas. Por lo que estos d\u00edas he estado jugando un poco con todas las posibilidades que nos ofrecen \u00e9stos.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/jorgediegocrespo.wordpress.com\\\/2023\\\/03\\\/20\\\/trabajando-con-mapas-en-dotnet-maui\\\/#breadcrumb\"},\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/jorgediegocrespo.wordpress.com\\\/2023\\\/03\\\/20\\\/trabajando-con-mapas-en-dotnet-maui\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\\\/\\\/jorgediegocrespo.wordpress.com\\\/2023\\\/03\\\/20\\\/trabajando-con-mapas-en-dotnet-maui\\\/#primaryimage\",\"url\":\"https:\\\/\\\/blogs.encamina.com\\\/por-una-nube-sostenible\\\/wp-content\\\/uploads\\\/sites\\\/19\\\/2023\\\/04\\\/mapas-maui.jpg\",\"contentUrl\":\"https:\\\/\\\/blogs.encamina.com\\\/por-una-nube-sostenible\\\/wp-content\\\/uploads\\\/sites\\\/19\\\/2023\\\/04\\\/mapas-maui.jpg\",\"width\":887,\"height\":556},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/jorgediegocrespo.wordpress.com\\\/2023\\\/03\\\/20\\\/trabajando-con-mapas-en-dotnet-maui\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Portada\",\"item\":\"https:\\\/\\\/blogs.encamina.com\\\/por-una-nube-sostenible\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Trabajando con mapas en dotNet\u00a0MAUI\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/blogs.encamina.com\\\/por-una-nube-sostenible\\\/#website\",\"url\":\"https:\\\/\\\/blogs.encamina.com\\\/por-una-nube-sostenible\\\/\",\"name\":\"Por una nube sostenible\",\"description\":\"C\u00f3mo no romper los l\u00edmites, c\u00f3mo crear una buena arquitectura y c\u00f3mo hacer un buen mantenimiento\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/blogs.encamina.com\\\/por-una-nube-sostenible\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"es\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/blogs.encamina.com\\\/por-una-nube-sostenible\\\/#\\\/schema\\\/person\\\/db467d392da36cf2deba504fbb9eeb3e\",\"name\":\"Jorge Diego\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/4dc904b19ec9f1309fdccfd8a3c7520f3f89fe1efba301130bbc6ca84e3f6d85?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/4dc904b19ec9f1309fdccfd8a3c7520f3f89fe1efba301130bbc6ca84e3f6d85?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/4dc904b19ec9f1309fdccfd8a3c7520f3f89fe1efba301130bbc6ca84e3f6d85?s=96&d=mm&r=g\",\"caption\":\"Jorge Diego\"},\"description\":\"Soy un apasionado del desarrollo de software. Me encanta mi trabajo y mantenerme al d\u00eda haciendo cursos, investigando, realizando proyectos personales, etc. Principalmente trabajo con tecnolog\u00eda .NET. Asimismo, me interesa much\u00edsimo el mundo de la productividad personal. Adem\u00e1s del desarrollo tengo otras muchas aficiones: viajar, deporte, gastronom\u00eda, fotograf\u00eda\u2026y sobre todo, pasar tiempo con mi familia.\",\"url\":\"https:\\\/\\\/blogs.encamina.com\\\/por-una-nube-sostenible\\\/author\\\/jdiego\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Trabajando con mapas en dotNet\u00a0MAUI | ENCAMINA","description":"Una de las novedades que se ha lanzado \u00fatimamente en dotNet MAUI\u00a0es la posibilidad de utilizar mapas. Por lo que estos d\u00edas he estado jugando un poco con todas las posibilidades que nos ofrecen \u00e9stos.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/jorgediegocrespo.wordpress.com\/2023\/03\/20\/trabajando-con-mapas-en-dotnet-maui\/","og_locale":"es_ES","og_type":"article","og_title":"Trabajando con mapas en dotNet\u00a0MAUI","og_description":"Una de las novedades que se ha lanzado \u00fatimamente en dotNet MAUI\u00a0es la posibilidad de utilizar mapas. Por lo que estos d\u00edas he estado jugando un poco con todas las posibilidades que nos ofrecen \u00e9stos.","og_url":"https:\/\/jorgediegocrespo.wordpress.com\/2023\/03\/20\/trabajando-con-mapas-en-dotnet-maui\/","og_site_name":"Por una nube sostenible","article_published_time":"2023-04-05T18:11:28+00:00","article_modified_time":"2023-04-05T18:40:58+00:00","og_image":[{"width":887,"height":556,"url":"https:\/\/blogs.encamina.com\/por-una-nube-sostenible\/wp-content\/uploads\/sites\/19\/2023\/04\/mapas-maui.jpg","type":"image\/jpeg"}],"author":"Jorge Diego","twitter_card":"summary_large_image","twitter_misc":{"Escrito por":"Jorge Diego","Tiempo de lectura":"4 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/jorgediegocrespo.wordpress.com\/2023\/03\/20\/trabajando-con-mapas-en-dotnet-maui\/#article","isPartOf":{"@id":"https:\/\/blogs.encamina.com\/por-una-nube-sostenible\/trabajando-con-mapas-en-dotnet-maui\/"},"author":{"name":"Jorge Diego","@id":"https:\/\/blogs.encamina.com\/por-una-nube-sostenible\/#\/schema\/person\/db467d392da36cf2deba504fbb9eeb3e"},"headline":"Trabajando con mapas en dotNet\u00a0MAUI","datePublished":"2023-04-05T18:11:28+00:00","dateModified":"2023-04-05T18:40:58+00:00","mainEntityOfPage":{"@id":"https:\/\/blogs.encamina.com\/por-una-nube-sostenible\/trabajando-con-mapas-en-dotnet-maui\/"},"wordCount":693,"commentCount":1,"image":{"@id":"https:\/\/jorgediegocrespo.wordpress.com\/2023\/03\/20\/trabajando-con-mapas-en-dotnet-maui\/#primaryimage"},"thumbnailUrl":"https:\/\/blogs.encamina.com\/por-una-nube-sostenible\/wp-content\/uploads\/sites\/19\/2023\/04\/mapas-maui.jpg","articleSection":[".NET"],"inLanguage":"es","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/jorgediegocrespo.wordpress.com\/2023\/03\/20\/trabajando-con-mapas-en-dotnet-maui\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/blogs.encamina.com\/por-una-nube-sostenible\/trabajando-con-mapas-en-dotnet-maui\/","url":"https:\/\/jorgediegocrespo.wordpress.com\/2023\/03\/20\/trabajando-con-mapas-en-dotnet-maui\/","name":"Trabajando con mapas en dotNet\u00a0MAUI | ENCAMINA","isPartOf":{"@id":"https:\/\/blogs.encamina.com\/por-una-nube-sostenible\/#website"},"primaryImageOfPage":{"@id":"https:\/\/jorgediegocrespo.wordpress.com\/2023\/03\/20\/trabajando-con-mapas-en-dotnet-maui\/#primaryimage"},"image":{"@id":"https:\/\/jorgediegocrespo.wordpress.com\/2023\/03\/20\/trabajando-con-mapas-en-dotnet-maui\/#primaryimage"},"thumbnailUrl":"https:\/\/blogs.encamina.com\/por-una-nube-sostenible\/wp-content\/uploads\/sites\/19\/2023\/04\/mapas-maui.jpg","datePublished":"2023-04-05T18:11:28+00:00","dateModified":"2023-04-05T18:40:58+00:00","author":{"@id":"https:\/\/blogs.encamina.com\/por-una-nube-sostenible\/#\/schema\/person\/db467d392da36cf2deba504fbb9eeb3e"},"description":"Una de las novedades que se ha lanzado \u00fatimamente en dotNet MAUI\u00a0es la posibilidad de utilizar mapas. Por lo que estos d\u00edas he estado jugando un poco con todas las posibilidades que nos ofrecen \u00e9stos.","breadcrumb":{"@id":"https:\/\/jorgediegocrespo.wordpress.com\/2023\/03\/20\/trabajando-con-mapas-en-dotnet-maui\/#breadcrumb"},"inLanguage":"es","potentialAction":[{"@type":"ReadAction","target":["https:\/\/jorgediegocrespo.wordpress.com\/2023\/03\/20\/trabajando-con-mapas-en-dotnet-maui\/"]}]},{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/jorgediegocrespo.wordpress.com\/2023\/03\/20\/trabajando-con-mapas-en-dotnet-maui\/#primaryimage","url":"https:\/\/blogs.encamina.com\/por-una-nube-sostenible\/wp-content\/uploads\/sites\/19\/2023\/04\/mapas-maui.jpg","contentUrl":"https:\/\/blogs.encamina.com\/por-una-nube-sostenible\/wp-content\/uploads\/sites\/19\/2023\/04\/mapas-maui.jpg","width":887,"height":556},{"@type":"BreadcrumbList","@id":"https:\/\/jorgediegocrespo.wordpress.com\/2023\/03\/20\/trabajando-con-mapas-en-dotnet-maui\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Portada","item":"https:\/\/blogs.encamina.com\/por-una-nube-sostenible\/"},{"@type":"ListItem","position":2,"name":"Trabajando con mapas en dotNet\u00a0MAUI"}]},{"@type":"WebSite","@id":"https:\/\/blogs.encamina.com\/por-una-nube-sostenible\/#website","url":"https:\/\/blogs.encamina.com\/por-una-nube-sostenible\/","name":"Por una nube sostenible","description":"C\u00f3mo no romper los l\u00edmites, c\u00f3mo crear una buena arquitectura y c\u00f3mo hacer un buen mantenimiento","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/blogs.encamina.com\/por-una-nube-sostenible\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"es"},{"@type":"Person","@id":"https:\/\/blogs.encamina.com\/por-una-nube-sostenible\/#\/schema\/person\/db467d392da36cf2deba504fbb9eeb3e","name":"Jorge Diego","image":{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/secure.gravatar.com\/avatar\/4dc904b19ec9f1309fdccfd8a3c7520f3f89fe1efba301130bbc6ca84e3f6d85?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/4dc904b19ec9f1309fdccfd8a3c7520f3f89fe1efba301130bbc6ca84e3f6d85?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/4dc904b19ec9f1309fdccfd8a3c7520f3f89fe1efba301130bbc6ca84e3f6d85?s=96&d=mm&r=g","caption":"Jorge Diego"},"description":"Soy un apasionado del desarrollo de software. Me encanta mi trabajo y mantenerme al d\u00eda haciendo cursos, investigando, realizando proyectos personales, etc. Principalmente trabajo con tecnolog\u00eda .NET. Asimismo, me interesa much\u00edsimo el mundo de la productividad personal. Adem\u00e1s del desarrollo tengo otras muchas aficiones: viajar, deporte, gastronom\u00eda, fotograf\u00eda\u2026y sobre todo, pasar tiempo con mi familia.","url":"https:\/\/blogs.encamina.com\/por-una-nube-sostenible\/author\/jdiego\/"}]}},"_links":{"self":[{"href":"https:\/\/blogs.encamina.com\/por-una-nube-sostenible\/wp-json\/wp\/v2\/posts\/3278","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blogs.encamina.com\/por-una-nube-sostenible\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blogs.encamina.com\/por-una-nube-sostenible\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blogs.encamina.com\/por-una-nube-sostenible\/wp-json\/wp\/v2\/users\/212"}],"replies":[{"embeddable":true,"href":"https:\/\/blogs.encamina.com\/por-una-nube-sostenible\/wp-json\/wp\/v2\/comments?post=3278"}],"version-history":[{"count":0,"href":"https:\/\/blogs.encamina.com\/por-una-nube-sostenible\/wp-json\/wp\/v2\/posts\/3278\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blogs.encamina.com\/por-una-nube-sostenible\/wp-json\/wp\/v2\/media\/3279"}],"wp:attachment":[{"href":"https:\/\/blogs.encamina.com\/por-una-nube-sostenible\/wp-json\/wp\/v2\/media?parent=3278"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blogs.encamina.com\/por-una-nube-sostenible\/wp-json\/wp\/v2\/categories?post=3278"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blogs.encamina.com\/por-una-nube-sostenible\/wp-json\/wp\/v2\/tags?post=3278"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}