expo

1,074 views
998 views

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
1,074
On SlideShare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
1
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

expo

  1. 1. Para ello vamos a utilizar la clase GPolygon, del API de Google Maps, que nos permite dibujar un polígono dadas una serie de coordenadas. Los polígonos contienen una línea de contorno y además se les puede aplicar color de relleno. Así pues, los utilizaremos para rellenar de color la superficie de los países y pintar una línea que rodea la silueta del país.
  2. 2. <ul><li>Los polígonos en mapas de Google se colocan indicando los puntos o vértices, con sus correspondientes coordenadas de latitud y longitud. </li></ul><ul><li>La clase GPolygon es la encargada de dar soporte a la implementación de polígonos en los mapas. Para crear un polígono tenemos que utilizar el constructor de la clase GPolygon, que recibe una serie de parámetros para la configuración del mismo. La instanciación de un polígono se realiza de la siguiente manera : </li></ul><ul><li>var objeto_poligono = new GPolygon([punto1, punto2, …, punto1], color_borde, tamaño_borde, opacidad_borde, color_relleno, opacidad_relleno); </li></ul><ul><li>Se destacan los siguientes puntos: </li></ul><ul><ul><li>Color del borde: Una cadena con un color RGB en hexadecimal, tal como de definen en HTML. </li></ul></ul><ul><ul><li>Tamaño del borde: Un número entero, que es el número de píxeles del borde. </li></ul></ul><ul><ul><li>Opacidad del borde: Un número entre 0 y 1. Cuanto más bajo, más transparente y cuanto más alto más opaco. </li></ul></ul><ul><ul><li>Color_relleno: Un valor de tipo cadena con el color RGB en hexadecimal. </li></ul></ul><ul><ul><li>Opacidad del relleno: También un valor entre 0 y 1, igual que la opacidad del borde. </li></ul></ul>
  3. 3. <ul><li>CountryPoints consiste básicamente en un archivo con código Javascript donde se declaran una serie de arrays con puntos geográficos, basados en latitudes y longitudes, para generar las siluetas de cada país. </li></ul><ul><li>Para ilustrar la forma de este archivo de puntos, vendrá bien mostrar aquí un extracto de los puntos de varios países: </li></ul><ul><li>//primero se declara un objeto </li></ul><ul><li>var country = {}; </li></ul><ul><li>//luego se definen propiedades con las coordenadas para cada país </li></ul><ul><li>//se utilizan códigos de dos letras para cada país </li></ul><ul><li>country.GU = { </li></ul><ul><li>    desc: 'GUAM', </li></ul><ul><li>   coord: [ [new GLatLng(13.235, 144.7094), new GLatLng(13.42778, 144.6552), new GLatLng(13.65229, 144.8761), </li></ul><ul><li>new GLatLng(13.235, 144.7094)]]}; </li></ul><ul><li>country.PT = { </li></ul><ul><li>    desc: 'PORTUGAL‘, </li></ul><ul><li>    coord: [ [new GLatLng(37.25319, -7.431854), new GLatLng(37.00889, -7.897779), new GLatLng(37.02631, -8.9892369), new GLatLng(38.71722, - 9.118473)], [new GLatLng(37.70555, -25.45611), new GLatLng(37.88389, -25.85417), new GLatLng(37.70555, -25.45611)], [new GLatLng(32.6375, - </li></ul><ul><li>16.94361), new GLatLng(32.6375, -16.94361)]] </li></ul><ul><li>    }; </li></ul>
  4. 4. <ul><li>Así pues, para crear los polígonos de un país,debemos: </li></ul><ul><li>1) Incluir el array con los puntos de los países. Para ello tendremos que incluir un código Javascript externo, que está en el proyecto CountryPoints de Google Code. (podemos incluirlo desde el servidor de Google Code o directamente descargarlo y subirlo a nuestro espacio de alojamiento. </li></ul><ul><li><script src=&quot;http://countrypoints.googlecode.com/files/countrypoints.js&quot; type=&quot;text/javascript&quot;></script </li></ul>
  5. 5. <ul><li>2) Extraigo todos los puntos definidos para el país: var coordenadas_portugal = country.PT.coord; (Si el país fuese portugal) Los códigos de países de dos letras son por ejemplo PT para portugal, ES para España y BR para Brasil... Estos códigos están normalizados según normativa ISO 3166-1 . </li></ul>
  6. 6. <ul><li>3) Recorrer las coordenadas para crear los polígonos Con un bucle recorro los grupos de coordenadas para crear cada uno de los polígonos. (Porque debemos recordar que el array de coordenadas era de dos dimensiones, para cada uno de los territorios separados del país) . for (i=0; i<coordenadas_portugal.length; i++){ </li></ul><ul><li>    map.addOverlay(new </li></ul><ul><li>GPolygon(coordenadas_portugal[i],&quot;#669933&quot;, 2, 0.7, </li></ul><ul><li>&quot;#669933&quot;, 0.4)); </li></ul><ul><li>} </li></ul>
  7. 7. <ul><li><script src=&quot;http://maps.google.com/maps?file=api&v=2&key=tu_lleva_api_google_maps&quot; type=&quot;text/javascript&quot;></script> <script src=&quot;http://countrypoints.googlecode.com/files/countrypoints.js&quot; type=&quot;text/javascript&quot;></script> <script type=&quot;text/javascript&quot;> //<![CDATA[ function load() {    if (GBrowserIsCompatible()) {       var map = new GMap2(document.getElementById(&quot;map&quot;));          map.setCenter(new GLatLng(39.41,-3.017),5);       map.addControl(new GMapTypeControl());       map.addControl(new GSmallZoomControl());             //creo los polígonos de España       var coordenadas_espana = country.ES.coord;       for (i=0; i<coordenadas_espana.length; i++){          map.addOverlay(new GPolygon(coordenadas_espana[i],&quot;#dd6600&quot;, 2, 0.7, &quot;#993300&quot;, 0.4));       }             //creo los polígonos de portugal       var coordenadas_portugal = country.PT.coord;       for (i=0; i<coordenadas_portugal.length; i++){          map.addOverlay(new GPolygon(coordenadas_portugal[i],&quot;#669933&quot;, 2, 0.7, &quot;#669933&quot;, 0.4));       }          //creo los polígonos de francia       var coordenadas_francia = country.FR.coord;       for (i=0; i<coordenadas_francia.length; i++){          map.addOverlay(new GPolygon(coordenadas_francia[i],&quot;#000099&quot;, 2, 0.7, &quot;#000099&quot;, 0.4));       }             //creo los polígonos de Marruecos       var coordenadas_marruecos = country.MA.coord;       for (i=0; i<coordenadas_francia.length; i++){          map.addOverlay(new GPolygon(coordenadas_marruecos[i],&quot;#990000&quot;, 2, 0.7, &quot;#990000&quot;, 0.4));       }  }} window.onload=load //]]> </script> </li></ul>
  8. 9. <ul><li>Gracias </li></ul><ul><li>Yadira Torres Aguilar </li></ul>

×