Servicios Web, Se trata de un mecanismo relativamente nuevo que nos permite llamadas a aplicaciones remotas a través de
HTTP mediante el uso de protocolos y lenguajes basados en XML, es el web service es un estándar de comunicación entre
procesos, diseñado para trabajar en multiplataforma y multilenguaje, no importa en que lenguaje esté programado C#, Java
etc, o en que sistema operativo Linux, Windows etc, en nuestro caso el sistema será windows y el lenguaje C#.
Existen varias formas de acceso a un Servicio Web. Nosotros nos centraremos en la clase proxy que implementa las llamadas
mediante SOAP pero de forma transparente a nosotros. Esta clase proxy se puede generar con la utilidad en línea de comando
WSDL.exe Su utilización produce un fichero del lenguaje que estemos utilizando .cs si es C#, que genera la clase proxy a partir
de la descripción WSDL del Servicio, compilamos el proxy.cs para generar un proxy.dll.
Por defecto la clase se colocará en el espacio de nombres raíz por lo que no hará falta añadir el espacio de nombres con
la directiva using, no obstante se puede indicar el namespace con la opción de WSDL.exe /n:
se encarga de llamar a las funciones del Servicio Web haciéndolo transparente para nosotros que simplemente actuaremos con la
clase proxy como una clase local.
[En cliente] [En servidor]
[Aplicación]->[Proxy DLL]<-[SOAP/HTTP]->[Servidor Web]->[Servicio Web]
En nuestro caso el consumo de lo Servicios de Web lo desarrollamos en lenguaje C# y en plataforma Windows, lo primero
que tenemos que saber donde, como y cuales son los servicios de la Dirección General del Catastro nos ofrece, pues bien toda
esa información la encontramos En un documento web se encuentra en al Oficina Virtual de este Organismo Publico
http://www.catastro.meh.es/ws/webservices_catastro.pdf.
De este documento nosotros vamos a desarrollar consulta a datos no protegidos esto nos hace fijarnos en dos URLs, El
callejero de la Oficina Virtual del catastro http://ovc.catastro.meh.es/ovcservweb/OVCSWLocalizacionRC/OVCCallejero.asmx
Consultaprovincia Servicio de consulta de provincias.
ConsultaMunicipio Servicio de consulta de municipios para una provincia.
ConsultaNumero Servicio de consulta de números para una vía.
ConsultaVia Servicio de consulta de vías para un municipio.
Consulta_DNPPP Servicio de consulta de datos no protegidos para un inmueble por su polígono parcela.
Consulta_DNPLOC Servicio de consulta de datos no protegidos para un inmueble por su localización.
Consulta_DNPRC Servicio de consulta de datos no protegidos para un inmueble por su referencia catastral.
La segunda es Conversor de coordenadas en la URL https://ovc.catastro.meh.es/ovcservweb/OVCSWLocalizacionRC/OVCCoordenadas.asmx
Consulta_RCCOOR Servicio de consulta de Referencia Catastral por Coordenadas.
Consulta_RCCOOR_Distancia Servicio de consulta lista de Referencias Catastrales por distancia a unas Coordenadas.
Consulta_CPMRC Servicio de consulta de coordenadas por Provincia, Municipio y Referencia Catastral.
En ambos casos tenemos sendos documentos WSDL escritos en XML en donde se encuentra toda la descripción del los servicios y métodos.
https://ovc.catastro.meh.es/ovcservweb/OVCSWLocalizacionRC/OVCCallejero.asmx?WSDL
https://ovc.catastro.meh.es/ovcservweb/OVCSWLocalizacionRC/OVCCoordenadas.asmx?WSDL
Estos dos documentos son descripción formal del los métodos y servicios antes mencionados.
El siguiente punto es obtener una fuente del proxy en este caso seria dos uno para el callejero y otro para El conversor de
coordenadas esto se haces descargando esto ficheros .xml con WSDL.exe que produce un fichero del lenguaje que estemos utilizando
C# *.cs, son estos*.cs La clase proxy a partir de la descripción WSDL del Servicio, es necesario tener instalado
C:\WINDOWS\Microsoft.NET\Framework
Descargar las Clases Proxy
wsdl /l:CSharp /protocol:SOAP /out:proxyCallejero.cs https://ovc.catastro.meh.es/ovcservweb/OVCSWLocalizacionRC/OVCCallejero.asmx?WSDL
wsdl /l:CSharp /protocol:SOAP /out:proxyCoordenadas.cs https://ovc.catastro.meh.es/ovcservweb/OVCSWLocalizacionRC/OVCCoordenadas.asmx?WSDL
El resultado es proxyCallejero.cs y proxyCoordenadas.cs el nombre del ficero puede ser el que nosotroa convengamos, es muy importante
Ver el contenido de ellos pues ya podemos ver las clases y los métodos que invocaremos, asi como las definiciones de sus parámetros.
Eje: en proxyCallejero.cs tenemos public Callejerodelaoficinavirtualdelcatastro() { .......... Etc.
y en proxyCoordenadas.cs public OVCCoordenadas() {... Etc.
Podríamos compilar estos proxy.c junto con nuestros clientes.cs escritos en C#, pero creo que es mejor crear librerias de enlace
dinámico proxy.dll y de esta forma nuestros clientes.exe serán más pequeños.
Generar .dll de la clase Proxy
csc /t:library /r:System.Web.Services.dll /r:System.Xml.dll proxyCallejero.cs
csc /t:library /r:System.Web.Services.dll /r:System.Xml.dll proxyCoordenadas.cs
La invocación de estos servicios no devuelve un fichero en formato XML que podemos ver el modelo en la documentación que la
dirección general del catastro pone a nuestra disposición en las URLs antes mencionadas, los clientes son muy sencillos pues una vez
compilado nuestro proxy el codigo que implementaremos es como si llamaremos a un procedimiento local en nuestra aplicación cliente.
[Parametros]-->[PROXY]-->[RESULTADO en XML]
Ejemplos del Clientes en C# (Consulta del Callejero)
ConsultaProvincia Servicio de consulta de provincias. Este servicio el invocarlo los devuelve un listado de provincias, el código cliente es:
//-----------------------------------------------------------
// Autor: Alfonso Somoza de la Fuente
// Fecha: 02 de junio de 2008
//
// Listado de PROVINCIAS
//
// Parámetros de entrada. niguno.
//
// Uso: ConsultaProvincia
//
// El resultado es Provincias.xml
//
// Referencias: http://www.catastro.meh.es/ws/webservices_catastro.pdf
// https://ovc.catastro.meh.es/ovcservweb/OVCSWLocalizacionRC/OVCCallejero.asmx?op=ConsultaProvincia
//
//-----------------------------------------------------------
using System;
using System.Xml;
using System.IO;
using System.Text;
using System.Xml.Xsl;
namespace Callejero {
class ConsultaProvincia
{
public static void Main(string[] args)
{
string source = "";
string PATH = Directory.GetCurrentDirectory();
string FILE_NAME = PATH+@"\Provincias.xml";
StreamWriter objWrite = File.CreateText(FILE_NAME);
Callejerodelaoficinavirtualdelcatastro myServicio = new Callejerodelaoficinavirtualdelcatastro();
XmlDocument Xmldocumento = new XmlDocument();
XmlNode Nodrespuesta = myServicio.ObtenerProvincias();
Xmldocumento.AppendChild(Xmldocumento.ImportNode(Nodrespuesta,true));
objWrite.WriteLine("{0}",source);
objWrite.WriteLine("{0}",Xmldocumento.InnerXml.ToString());
objWrite.Close();
}
}
}
Podemos compilarlo:
C:\OVC>csc /r:proxyCallejero.dll ConsultaProvincia.cs /win32icon:house.ico
/win32icon:house.ico es opcional simplemente añade el icono house.ico el ejecutable.
este Ejemplo no es el mas apropiado pue no tiene parametro de invocación del servición. el resultado es el fichero Provincias.xml
desde la linea de comandos C:\OVC>ConsultaProvincia
ConsultaMunicipio Servicio de consulta de municipios para una provincia. este servicio si tiene parametros de entrada.
//-----------------------------------------------------------
// Autor: Alfonso Somoza de la Fuente
// Fecha: 02 de junio de 2008
// Uso: ConsultaMunicipio "Provincia" "Municipio"
//
// Listado de MUNICIPIOS de una provincia
//
// Parámetros de entrada.
// ---------------------
// Provincia: Obligatorio. Denominación de una provincia según lo devuelto en el listado de provincias.
// Municipio: Opcional. Cadena con el nombre o parte del nombre del municipio.
// ---------------------
//
// El resultado es Municipios.xml
//
// Referencias: http://www.catastro.meh.es/ws/webservices_catastro.pdf
// https://ovc.catastro.meh.es/ovcservweb/OVCSWLocalizacionRC/OVCCallejero.asmx?op=ConsultaMunicipio
//
//-----------------------------------------------------------
using System;
using System.Xml;
using System.IO;
using System.Text;
using System.Xml.Xsl;
namespace Callejero {
class ConsultaMunicipio
{
public static void Main(string[] args)
{
string Provincia ="";
string Municipio ="";
string PATH = Directory.GetCurrentDirectory();
if (args.Length > 0)
{
Provincia = args[0];
Municipio = args[1];
string FILE_NAME = PATH+@"\Municipios.xml";
ConMunicipios(Provincia,Municipio,FILE_NAME);
} else Console.WriteLine("Faltan algun parametro");
}
public static void ConMunicipios(string eProvincia,
string eMunicipio,
string FILE_NAME)
{
string source = "";
StreamWriter filSalida = File.CreateText(FILE_NAME);
Callejerodelaoficinavirtualdelcatastro myServicio = new Callejerodelaoficinavirtualdelcatastro();
XmlDocument Xmldocumento = new XmlDocument();
XmlNode Nodrespuesta = myServicio.ObtenerMunicipios(eProvincia,
eMunicipio);
Xmldocumento.AppendChild(Xmldocumento.ImportNode(Nodrespuesta,true));
filSalida.WriteLine("{0}",source);
filSalida.WriteLine("{0}",Xmldocumento.InnerXml.ToString());
filSalida.Close();
}
}
}
Lo compilamos: c:\OVC>csc /r:proxyCallejero.dll ConsultaMunicipio.cs /win32icon:house.ico
Lo Ejecutamos: c:\OVC>ConsultaMunicipio "PALENCIA" "PAL"
Todos lo municipios de la Provincia PALENCIA que empiezen por PAL.
El resultado es el fichero: Municipios.xml con el formato que tenemos en la documentación del Catastro.
ConsultaNumero Servicio de consulta de números para una via.
//-----------------------------------------------------------
// Autor: Alfonso Somoza de la Fuente
// Fecha: 02 de junio de 2008
// Uso: ConsultaNumero "Provincia" "Municipio" "TipoVia" "NombreVía" "Número"
//
// Listado de los NUMEROS de una via
//
// Parámetros de entrada.
// ---------------------
// Provincia: Obligatorio. Denominación de una provincia según lo devuelto en el listado de provincias.
// Municipio: Obligatorio. Denominación de un municipio según lo devuelto en el listado de municipios.
// TipoVia: Obligatorio. Abreviatura del tipo de vía. Ver listado de abreviaturas en el Anexo I.
// NombreVía: Obligatorio. Cadena con el nombre o parte del nombre de la vía.
// Número: Obligatorio. Número del que se desea conocer la referencia catastral oaproximación para la búsqueda.
// ----------------------
//
// El resultado es Numeros.xml
//
// Referencias: http://www.catastro.meh.es/ws/webservices_catastro.pdf
// https://ovc.catastro.meh.es/ovcservweb/OVCSWLocalizacionRC/OVCCallejero.asmx?op=ConsultaNumero
//
//-----------------------------------------------------------
using System;
using System.Xml;
using System.IO;
using System.Text;
using System.Xml.Xsl;
namespace Callejero {
class ConsultaNumero
{
public static void Main(string[] args)
{
string Provincia ="";
string Municipio ="";
string TipoVia ="";
string NomVia ="";
string Numero ="";
string PATH = Directory.GetCurrentDirectory();
if (args.Length > 0)
{
Provincia = args[0];
Municipio = args[1];
TipoVia = args[2];
NomVia = args[3];
Numero = args[4];
string FILE_NAME = PATH+@"\Numeros.xml";
ConNumero(Provincia,Municipio,TipoVia,NomVia,Numero,FILE_NAME);
} else Console.WriteLine("Faltan algun parametro");
}
public static void ConNumero(string eProvincia,
string eMunicipio,
string eTipoVia,
string eNomVia,
string eNumero,
string FILE_NAME)
{
string source = "";
StreamWriter filSalida = File.CreateText(FILE_NAME);
Callejerodelaoficinavirtualdelcatastro myServicio = new Callejerodelaoficinavirtualdelcatastro();
XmlDocument Xmldocumento = new XmlDocument();
XmlNode Nodrespuesta = myServicio.ObtenerNumerero(eProvincia,
eMunicipio,
eTipoVia,
eNomVia,
eNumero);
Xmldocumento.AppendChild(Xmldocumento.ImportNode(Nodrespuesta,true));
filSalida.WriteLine("{0}",source);
filSalida.WriteLine("{0}",Xmldocumento.InnerXml.ToString());
filSalida.Close();
}
}
}
Lo compilamos: c:\OVC>csc /r:proxyCallejero.dll ConsultaNumero.cs /win32icon:house.ico
Lo Ejecutamos: c:\OVC>ConsultaNumero "PALENCIA" "PALENCIA" "PZ" "ABILIO CALDERON" "1"
El resultado es el fichero: Numeros.xml con el formato que tenemos en la documentación del Catastro.
ConsultaVia Servicio de consulta de vias para un municipio.
//-----------------------------------------------------------
// Autor: Alfonso Somoza de la Fuente
// Fecha: 02 de junio de 2008
// Uso: ConsultaVia "Provincia" "Municipio" "TipoVia" "NombreVia"
//
// Listado de ViAS de un municipio
//
// Parámetros de entrada.
// ---------------------
// Provincia: Obligatorio. Denominacion de una provincia según lo devuelto en el listado de provincias.
// Municipio: Obligatorio. Denominacion de un municipio según lo devuelto en el listado de municipios.
// TipoVia: Opcional. Abreviatura del tipo de vía. Ver listado de abreviaturas en el Anexo I.
// NombreVía: Opcional. Cadena con el nombre o parte del nombre de la vía.
// ---------------------
//
// El resultado es Vias.xml
//
// Referencias: http://www.catastro.meh.es/ws/webservices_catastro.pdf
// https://ovc.catastro.meh.es/ovcservweb/OVCSWLocalizacionRC/OVCCallejero.asmx?op=ConsultaVia
//
//-----------------------------------------------------------
using System;
using System.Xml;
using System.IO;
using System.Text;
using System.Xml.Xsl;
namespace Callejero {
class ConsultaVia
{
public static void Main(string[] args)
{
string Provincia ="";
string Municipio ="";
string TipoVia ="";
string NombreVia ="";
string PATH = Directory.GetCurrentDirectory();
if (args.Length > 0)
{
Provincia = args[0];
Municipio = args[1];
TipoVia = args[2];
NombreVia = args[3];
string FILE_NAME = PATH+@"\Vias.xml";
ConVia(Provincia,Municipio,TipoVia,NombreVia,FILE_NAME);
} else Console.WriteLine("Faltan algun parametro");
}
public static void ConVia(string eProvincia,
string eMunicipio,
string eTipoVia,
string eNombreVia,
string FILE_NAME)
{
string source = "";
StreamWriter filSalida = File.CreateText(FILE_NAME);
Callejerodelaoficinavirtualdelcatastro myServicio = new Callejerodelaoficinavirtualdelcatastro();
XmlDocument Xmldocumento = new XmlDocument();
XmlNode Nodrespuesta = myServicio.ObtenerCallejero(eProvincia,
eMunicipio,
eTipoVia,
eNombreVia);
Xmldocumento.AppendChild(Xmldocumento.ImportNode(Nodrespuesta,true));
filSalida.WriteLine("{0}",source);
filSalida.WriteLine("{0}",Xmldocumento.InnerXml.ToString());
filSalida.Close();
}
}
}
Lo compilamos: c:\OVC>csc /r:proxyCallejero.dll ConsultaVia.cs /win32icon:house.ico
Lo Ejecutamos: c:\OVC>ConsultaVia "PALENCIA" "PALENCIA" "PZ" ""
El resultado es el fichero: Vias.xml con el formato que tenemos en la documentación del Catastro.
Consulta_DNPPP Servicio de consulta de datos no protegidos para un inmueble por su polígono parcela.
//-----------------------------------------------------------
// Autor: Alfonso Somoza de la Fuente
// Fecha: 02 de junio de 2008
// Uso: Consulta_DNPPP "Provincia" "Municipio" "Poligono" "Parcela"
//
// Consulta de DATOS CATASTRALES NO PROTEGIDOS de un inmueble identificado por polígono-parcela
//
// Parámetros de entrada.
// ---------------------
// Provincia: Obligatorio. Denominación de una provincia según lo devuelto en el listado de provincias.
// Municipio: Obligatorio. Denominación de un municipio según lo devuelto en el listado de municipios.
// Polígono: Obligatorio. Código del polígono.
// Parcela: Obligatorio. Código de la parcela.
// ----------------------
//
// El resultado es DNPPP.xml
//
// Referencias: http://www.catastro.meh.es/ws/webservices_catastro.pdf
// https://ovc.catastro.meh.es/ovcservweb/OVCSWLocalizacionRC/OVCCallejero.asmx?op=Consulta_DNPPP
//
//-----------------------------------------------------------
using System;
using System.Xml;
using System.IO;
using System.Text;
using System.Xml.Xsl;
namespace Callejero {
class Consulta_DNPPP
{
public static void Main(string[] args)
{
string Provincia ="";
string Municipio ="";
string Poligono ="";
string Parcela ="";
string PATH = Directory.GetCurrentDirectory();
if (args.Length > 0)
{
Provincia = args[0];
Municipio = args[1];
Poligono = args[2];
Parcela = args[3];
string FILE_NAME = PATH+@"\DNPPP.xml";
ConDNPPP(Provincia,Municipio,Poligono,Parcela,FILE_NAME);
} else Console.WriteLine("Faltan algun parametro");
}
public static void ConDNPPP(string eProvincia,
string eMunicipio,
string ePoligono,
string eParcela,
string FILE_NAME)
{
string source = "";
StreamWriter filSalida = File.CreateText(FILE_NAME);
Callejerodelaoficinavirtualdelcatastro myServicio = new Callejerodelaoficinavirtualdelcatastro();
XmlDocument Xmldocumento = new XmlDocument();
XmlNode Nodrespuesta = myServicio.Consulta_DNPPP(eProvincia,
eMunicipio,
ePoligono,
eParcela);
Xmldocumento.AppendChild(Xmldocumento.ImportNode(Nodrespuesta,true));
filSalida.WriteLine("{0}",source);
filSalida.WriteLine("{0}",Xmldocumento.InnerXml.ToString());
filSalida.Close();
}
}
}
Lo compilamos: c:\OVC>csc /r:proxyCallejero.dll Consulta_DNPPP.cs /win32icon:house.ico
Lo Ejecutamos: c:\OVC>Consulta_DNPPP "PALENCIA" "PALENCIA" "10" "10"
El resultado es el fichero: DNPPP.xml con el formato que tenemos en la documentación del Catastro.
Consulta_DNPLOC Servicio de consulta de datos no protegidos para un inmueble por su localización.
//-----------------------------------------------------------
// Autor: Alfonso Somoza de la Fuente
// Fecha: 02 de junio de 2008
// Uso: Consulta_DNPLOC "Provincia" "Municipio" "Sigla" "Calle" "Numero" "Bloque" "Escalera" "Planta" "Puerta"
//
// Consulta de DATOS CATASTRALES NO PROTEGIDOS de un inmueble identificado por su localizacion
//
// Parámetros de entrada.
// ---------------------
// Provincia: Obligatorio. Denominación de una provincia según lo devuelto en ellistado de provincias.
// Municipio: Obligatorio. Denominación de un municipio según lo devuelto en el listadode municipios.
// TipoVia: Obligatorio. Abreviatura del tipo de vía. Ver listado de abreviaturas en elAnexo I.
// NombreVía: Obligatorio. Cadena con el nombre o parte del nombre de la vía.
// Número: Obligatorio. Número del que se desea conocer la referencia catastral.
// En caso de que el valor de alguno de estos parámetros no exista en la base dedatos del catastro,
// se devuelve un error ("La provincia no existe", "El municipio noexiste" etc.)
// y una lista de candidatos de acuerdo a lo descrito en los serviciosanteriores.
// Bloque: Opcional.
// Escalera: Opcional
// Planta: Opcional
// Puerta: Opcional
// ----------------------
//
// El resultado es DNPLOC.xml
//
// Referencias: http://www.catastro.meh.es/ws/webservices_catastro.pdf
// https://ovc.catastro.meh.es/ovcservweb/OVCSWLocalizacionRC/OVCCallejero.asmx?op=Consulta_DNPLOC
//
//-----------------------------------------------------------
using System;
using System.Xml;
using System.IO;
using System.Text;
using System.Xml.Xsl;
namespace Callejero {
class Consulta_DNPLOC
{
public static void Main(string[] args)
{
string Provincia ="";
string Municipio ="";
string Sigla = "";
string Calle ="";
string Numero ="";
string Bloque ="";
string Escalera = "";
string Planta = "";
string Puerta = "";
string PATH = Directory.GetCurrentDirectory();
if (args.Length > 0)
{
Provincia = args[0];
Municipio = args[1];
Sigla = args[2];
Calle = args[3];
Numero = args[4];
Bloque = args[5];
Escalera = args[6];
Planta = args[7];
Puerta = args[8];
string FILE_NAME = PATH+@"\DNPLOC.xml";
CDNPLOC(Provincia,Municipio,Sigla,Calle,Numero,Bloque,Escalera,Planta,Puerta,FILE_NAME);
} else Console.WriteLine("Faltan algun parametro");
}
public static void CDNPLOC(string eProvincia,
string eMunicipio,
string eSigla,
string eCalle,
string eNumero,
string eBloque,
string eEscalera,
string ePlanta,
string ePuerta,
string FILE_NAME)
{
string source = "";
StreamWriter filSalida = File.CreateText(FILE_NAME);
Callejerodelaoficinavirtualdelcatastro myServicio = new Callejerodelaoficinavirtualdelcatastro();
XmlDocument Xmldocumento = new XmlDocument();
XmlNode Nodrespuesta = myServicio.Consulta_DNPLOC(eProvincia,
eMunicipio,
eSigla,
eCalle,
eNumero,
eBloque,
eEscalera,
ePlanta,
ePuerta);
Xmldocumento.AppendChild(Xmldocumento.ImportNode(Nodrespuesta,true));
filSalida.WriteLine("{0}",source);
filSalida.WriteLine("{0}",Xmldocumento.InnerXml.ToString());
filSalida.Close();
}
}
}
Lo compilamos: c:\OVC>csc /r:proxyCallejero.dll Consulta_DNPLOC.cs /win32icon:house.ico
Lo Ejecutamos: c:\OVC>Consulta_DNPLOC "PALENCIA" "PALENCIA" "PZ" "MAYOR PRINCIPAL" "14" "" "" "2" "A"
El resultado es el fichero: DNPLOC.xml con el formato que tenemos en la documentación del Catastro.
Consulta_DNPRC Servicio de consulta de datos no protegidos para un inmueble por su referencia catastral.
//-----------------------------------------------------------
// Autor: Alfonso Somoza de la Fuente
// Fecha: 02 de junio de 2008
// Uso: Consulta_DNPRC "Provincia" "Municipio" "RC"
//
// Consulta de DATOS CATASTRALES NO PROTEGIDOS de un inmueble identificado por su Referencia Catastral
//
// Parámetros de entrada.
// ---------------------
// Provincia: Obligatorio. Denominación de una provincia según lo devuelto en ellistado de provincias.
// Municipio: Obligatorio. Denominación de un municipio según lo devuelto en el listadode municipios.
// RC: Obligatorio. Referencia catastral. Puede tener 14, 18 o 20 posiciones.
// En caso de que sean 14 posiciones (lo que se corresponde con la referencia de una finca),
// se devuelve una lista de todos los inmuebles de esa finca
// (es decir cuyos 14 primeroscaracteres de la RC coinciden con el parámetro).
// ----------------------
//
// El resultado es DNPRC.xml
//
// Referencias: http://www.catastro.meh.es/ws/webservices_catastro.pdf
// https://ovc.catastro.meh.es/ovcservweb/OVCSWLocalizacionRC/OVCCallejero.asmx?op=Consulta_DNPRC
//
//-----------------------------------------------------------
using System;
using System.Xml;
using System.IO;
using System.Text;
using System.Xml.Xsl;
namespace Callejero {
class Consulta_DNPRC
{
public static void Main(string[] args)
{
string Provincia ="";
string Municipio ="";
string RC ="";
string PATH = Directory.GetCurrentDirectory();
if (args.Length > 0)
{
Provincia = args[0];
Municipio = args[1];
RC = args[2];
string FILE_NAME = PATH+@"\DNPRC.xml";
CDNPRC(Provincia,Municipio,RC,FILE_NAME);
} else Console.WriteLine("Faltan algun parametro");
}
public static void CDNPRC(string eProvincia,
string eMunicipio,
string eRC,
string FILE_NAME)
{
string source = "";
StreamWriter filSalida = File.CreateText(FILE_NAME);
Callejerodelaoficinavirtualdelcatastro myServicio = new Callejerodelaoficinavirtualdelcatastro();
XmlDocument Xmldocumento = new XmlDocument();
XmlNode Nodrespuesta = myServicio.Consulta_DNPRC(eProvincia,
eMunicipio,
eRC);
Xmldocumento.AppendChild(Xmldocumento.ImportNode(Nodrespuesta,true));
filSalida.WriteLine("{0}",source);
filSalida.WriteLine("{0}",Xmldocumento.InnerXml.ToString());
filSalida.Close();
}
}
}
Lo compilamos: c:\OVC>csc /r:proxyCallejero.dll Consulta_DNPRC.cs /win32icon:house.ico
Lo Ejecutamos: c:\OVC>Consulta_DNPRC "PALENCIA" "PALENCIA" "34900A010000100000JU"
El resultado es el fichero: DNPRC.xml con el formato que tenemos en la documentación del Catastro.
Ejemplos de Clientes en C# (Conversor de coordenadas)
Consulta_RCCOOR Servicio de consulta de Referencia Catastral por Coordenadas.
//-----------------------------------------------------------
// Autor: Alfonso Somoza de la Fuente
// Fecha: 02 de junio de 2008
// Uso: Consulta_RCCOOR "SRS" "CoorX" "CoorY"
//
// Servicio de consulta de Referencia Catastral por Coordenadas.
//
// Parámetros de entrada.
// ---------------------
// SRS: Obligatorio. Se admiten los siguientes sistemas de coordenadas:
// CoorX, CoorY: Obligatorios
// En caso de sistema de referencia en coordenadas geográficas
// X-> longitud Y-> latitud (en grado y fracción de grado).
// En caso de UTM, coordenadas en metros
//
// ---------------------
//
// El resultado es RCCOOR.xml
//
// Referencias: http://www.catastro.meh.es/ws/webservices_catastro.pdf
// https://ovc.catastro.meh.es/ovcservweb/OVCSWLocalizacionRC/OVCCoordenadas.asmx?op=Consulta_RCCOOR
//
//-----------------------------------------------------------
using System;
using System.Xml;
using System.IO;
using System.Text;
using System.Xml.Xsl;
namespace Coordenadas {
class Consulta_RCCOOR
{
public static void Main(string[] args)
{
string SRS ="";
string CoorX ="";
string CoorY ="";
string PATH = Directory.GetCurrentDirectory();
if (args.Length > 0)
{
SRS = args[0];
CoorX = args[1];
CoorY = args[2];
string FILE_NAME = PATH+@"\RCCOOR.xml";
CRCCOOR(SRS,CoorX,CoorY,FILE_NAME);
} else Console.WriteLine("Faltan algun parametro");
}
public static void CRCCOOR(string eSRS,
string eCoorX,
string eCoorY,
string FILE_NAME)
{
string source = "";
StreamWriter filSalida = File.CreateText(FILE_NAME);
OVCCoordenadas myServicio = new OVCCoordenadas();
XmlDocument Xmldocumento = new XmlDocument();
XmlNode Nodrespuesta = myServicio.Consulta_RCCOOR(eSRS,
eCoorX,
eCoorY);
Xmldocumento.AppendChild(Xmldocumento.ImportNode(Nodrespuesta,true));
filSalida.WriteLine("{0}",source);
filSalida.WriteLine("{0}",Xmldocumento.InnerXml.ToString());
filSalida.Close();
}
}
}
Lo compilamos: c:\OVC>csc /r:proxyCoordenadas.dll Consulta_RCCOOR.cs /win32icon:earth.ico
Lo Ejecutamos: c:\OVC>Consulta_RCCOOR "EPSG:32627" "1867246.18997536" "4785363.04106059"
El resultado es el fichero: RCCOOR.xml con el formato que tenemos en la documentación del Catastro.
Consulta_RCCOOR_Distancia Servicio de consulta lista de Referencias Catastrales por distancia a unas Coordenadas.
//-----------------------------------------------------------
// Autor: Alfonso Somoza de la Fuente
// Fecha: 02 de junio de 2008
// Uso: Consulta_RCCOOR_Distancia "RS" "CoorX" "CoorY"
//
// Servicio de consulta lista de Referencias Catastrales por distancia a unas Coordenadas.
//
// Parámetros de entrada.
// ---------------------
// SRS: Obligatorio. Se admiten los siguientes sistemas de coordenadas:
// CoorX, CoorY: Obligatorios
// En caso de sistema de referencia en coordenadas geográficas
// X-> longitud Y-> latitud (en grado y fracción de grado).
// En caso de UTM, coordenadas en metros
// ---------------------
//
// El resultado es RCCOOR_Distancia.xml
//
// Referencias: http://www.catastro.meh.es/ws/webservices_catastro.pdf
// https://ovc.catastro.meh.es/ovcservweb/OVCSWLocalizacionRC/OVCCoordenadas.asmx?op=Consulta_RCCOOR_Distancia
//
//-----------------------------------------------------------
using System;
using System.Xml;
using System.IO;
using System.Text;
using System.Xml.Xsl;
namespace Coordenadas {
class Consulta_RCCOOR_Distancia
{
public static void Main(string[] args)
{
string SRS ="";
string CoorX ="";
string CoorY ="";
string PATH = Directory.GetCurrentDirectory();
if (args.Length > 0)
{
SRS = args[0];
CoorX = args[1];
CoorY = args[2];
string FILE_NAME = PATH+@"\RCCOOR_Distancia.xml";
CRCCOOR_Distancia(SRS,CoorX,CoorY,FILE_NAME);
} else Console.WriteLine("Faltan algun parametro");
}
public static void CRCCOOR_Distancia(string eSRS,
string eCoorX,
string eCoorY,
string FILE_NAME)
{
string source = "";
StreamWriter filSalida = File.CreateText(FILE_NAME);
OVCCoordenadas myServicio = new OVCCoordenadas();
XmlDocument Xmldocumento = new XmlDocument();
XmlNode Nodrespuesta = myServicio.Consulta_RCCOOR_Distancia(eSRS,
eCoorX,
eCoorY);
Xmldocumento.AppendChild(Xmldocumento.ImportNode(Nodrespuesta,true));
filSalida.WriteLine("{0}",source);
filSalida.WriteLine("{0}",Xmldocumento.InnerXml.ToString());
filSalida.Close();
}
}
}
Lo compilamos: c:\OVC>csc /r:proxyCoordenadas.dll Consulta_RCCOOR_Distancia.cs /win32icon:earth.ico
Lo Ejecutamos: c:\OVC>Consulta_RCCOOR_Distancia "EPSG:32627" "1867246.18997536" "4785363.04106059"
El resultado es el fichero: RCCOOR_Distancia.xml con el formato que tenemos en la documentación del Catastro.
Consulta_CPMRC Servicio de consulta de coordenadas por Provincia, Municipio y Referencia Catastral.
//-----------------------------------------------------------
// Autor: Alfonso Somoza de la Fuente
// Fecha: 02 de junio de 2008
// Uso: Consulta_CPMRC "Provincia" "Municipio" "SRS" "RefCat"
//
// Servicio de consulta de coordenadas por Provincia, Municipio y Referencia Catastral.
//
// Parámetros de entrada.
// ---------------------
// Provincia: Opcional (aunque obligatoria si se introduce el municipio).
// Denominación de una provincia según lo devuelto en el listado de provincias .
// Municipio: Opcional . Denominación de un municipio según lo devuelto en el listado de municipios.
// SRS: Opcional . Se admiten los siguientes sistemas de coordenadas:
// RefCat: Obligatoria. Referencia catastral, debe tener 14 posiciones que corresponden a la finca.
// ---------------------
//
// El resultado es CPMRC.xml
//
// Referencias: http://www.catastro.meh.es/ws/webservices_catastro.pdf
// https://ovc.catastro.meh.es/ovcservweb/OVCSWLocalizacionRC/OVCCoordenadas.asmx?op=Consulta_CPMRC
//
//-----------------------------------------------------------
using System;
using System.Xml;
using System.IO;
using System.Text;
using System.Xml.Xsl;
namespace Coordenadas {
class Consulta_CPMRC
{
public static void Main(string[] args)
{
string Provincia ="";
string Municipio ="";
string SRS ="";
string RefCat ="";
string PATH = Directory.GetCurrentDirectory();
if (args.Length > 0)
{
Provincia = args[0];
Municipio = args[1];
SRS = args[2];
RefCat = args[3];
string FILE_NAME = PATH+@"\CPMRC.xml";
CCPMRC(Provincia,Municipio,SRS,RefCat,FILE_NAME);
} else Console.WriteLine("Faltan algun parametro");
}
public static void CCPMRC(string eProvincia,
string eMunicipio,
string eSRS,
string eRefCat,
string FILE_NAME)
{
string source = "";
StreamWriter filSalida = File.CreateText(FILE_NAME);
OVCCoordenadas myServicio = new OVCCoordenadas();
XmlDocument Xmldocumento = new XmlDocument();
XmlNode Nodrespuesta = myServicio.Consulta_CPMRC(eProvincia,
eMunicipio,
eSRS,
eRefCat);
Xmldocumento.AppendChild(Xmldocumento.ImportNode(Nodrespuesta,true));
filSalida.WriteLine("{0}",source);
filSalida.WriteLine("{0}",Xmldocumento.InnerXml.ToString());
filSalida.Close();
}
}
}
Lo compilamos: c:\OVC>csc /r:proxyCoordenadas.dll Consulta_CPMRC.cs /win32icon:earth.ico
Lo Ejecutamos: c:\OVC>Consulta_DNPRC "PALENCIA" "PALENCIA" "34900A010000100000JU"
El resultado es el fichero: CPMRC.xml con el formato que tenemos en la documentación del Catastro.
Editado por Alfonso Somoza de la Fuente
E-Mail: somfueal@gmail.com
No hay comentarios:
Publicar un comentario