lunes, 13 de diciembre de 2010

Usando Bing Maps en SharePoint

Al igual que Google tiene su propio framework para mostrar información geográfica a través de mapas (Google Maps), Microsoft también tiene el suyo propio. Primero Microsoft lanzó Bing, buscador diseñado para competir con Google.

Y como no también se lanzo una plataforma para competir con Google Maps, llamada Virtual Earth que ahora se llama Bing Maps. Practicamente con las mismas caracterisitcas al de Googole, nos ofrece también vista 3D, vista de carreteras, posibilidad de hacer rutas, vistas aereas y mucho más. Con una ventaja importante: el rendimiento de la plataforma de microsoft es mucho mejor que la de google.

Una vez introducido, vamos a integrar in visor para Bing Maps en la plataforma Sharepoint 2007. Para ello vamos a hacer uso del webpart editor de contenido que nos permite insertar contenido web en cualquier parte de nuestro sitio SharePoint.



Una vez añadido el elemento web editor de contenido lo editamos en el panel de control ( mediante editar -> modificar elemento web compartido) y abrimos el editor del codigo fuente. Una vez abierto introducimos el siguiente código:

<script src="http://dev.virtualearth.net/mapcontrol/mapcontrol.ashx?v=5"></script> <script type="text/javascript">
  var map = null;   function GetMap()
  {
    map = new VEMap('myMap');
    map.LoadMap(new VELatLong(41.633333, -4.716667), 10,'r' ,false);
    AddPin(41.633333, -4.716667, 'ValladolidMap', '<strong>Nombre:</strong> Valladolid (España).');

  }   function AddPin(lat, lon, iconurl, title, desc)
  {
    var shape = new VEShape(VEShapeType.Pushpin,new VELatLong(lat,lon));
    shape.SetTitle(title);
    shape.SetDescription(desc);
    map.AddShape(shape);
  }   function addLoadEvent(func)
  {
    if(typeof window.onload != 'function')
    {
      window.onload = func;
    }
    else
    {
      window.onload = function()
        {
          func();
        }
    }
  }   addLoadEvent(GetMap);
</script>
<div id='myMap' style="position:relative; width:640px; height:480px;"></div>

Esto lo que hará es mostrarnos un mapa, centrado en Valladolid y con un apuntador rojo, también centrado en la ciudad. Si queremos cambiar la ubicación lo único que tendremos que hacer en este script es lo siguiente:
  • Función VElatLong(latitud,longitud): cordenadas del sitio en donde queramos apuntar el mapa inicialmente. Deben estar en decimal. por ejemplo, para sacar la de valladodolid yo he usado la siguiente página, donde se puede consultar la geolocalización de muchos puntos del mundo.  
  • Función AddPin(latitud,longitud,nombre,descripcion): Permite añadir el pin rojo apuntador en el punto del mapa donde queramos.
Y con estas nociones básicas podremos integrar fácil y rápidamene nuestro mapa de siguaci´n en cualquer sitio SharePoint, con la ayuda del elemento web editor de contenido. Pero este código perfectamente nos puede valer para integrar Bing Maps en cualquer sitio web.

domingo, 12 de diciembre de 2010

Proteger directorios con contraseña en servidor Apache

Es muy útil a veces, proteger ciertos directorios de nuestro servidor web mediante una contraseña, para evitar accesos indeseados. Sobre todo es muy recomendable hacerlo en los directorios de administración de las aplicaciones. 
Una de las maneras más fáciles es quitar el acceso de lectura sobre el directorio, al publico y listo. Pero vamos a ir más allá. ¿Que pasa si solo yo quiero acceder al directorio, mediante un navegador web?. La forma más fácil es usar el archivo .htaccess de Apache.
Para limitar el acceso a un directorio, debemos crear un archivo .htaccess en el directorio a proteger y seguidamente introducir lo siguiente:

AuthName "Texto al gusto"
AuthUserFile /ruta/al/fichero/.htpasswd
AuthType basic
Require valid-user

Ahora hay que generar el fichero .htpasswd que es el fichero que contendrá la contraseña. Este fichero se puede generar mediante el comando htpasswd o mediante un generador online como éste. Seguro que hay muchos más. 
Una vez generado, lo subimos al servidor en la ruta que hemos especificado en la directiva
AuthUserFile del archivo htaccess.