<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-1444891085365591821</id><updated>2011-12-14T14:03:13.807-08:00</updated><category term='Opinión'/><category term='SQL Spatial'/><category term='SQL SERVER'/><category term='Oracle'/><category term='Map Suite'/><title type='text'>Map Suite, Oracle, SQL Server, .NET, etc, etc, etc...</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://abrsanchez.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1444891085365591821/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://abrsanchez.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Abraham Sanchez</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_v5dIAsDiONI/TNRV4EZxNqI/AAAAAAAABDw/08jVRy_Y9Rw/S220/foto0040.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>11</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-1444891085365591821.post-6359843902138013768</id><published>2011-12-14T14:01:00.000-08:00</published><updated>2011-12-14T14:03:13.815-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SQL Spatial'/><title type='text'>Detectar el elemento mas cercano</title><content type='html'>UPDATE &lt;br /&gt; Manzanas&lt;br /&gt;SET &lt;br /&gt; IDLocalidad = (SELECT TOP 1 IDLocalidad FROM Localidades&lt;br /&gt;     WHERE (Localidades.Geom IS NOT NULL)&lt;br /&gt;     ORDER BY Manzanas.Geom.STDistance(Localidades.Geom) ASC&lt;br /&gt;     )&lt;br /&gt;WHERE Manzanas.Geom IS NOT NULL&lt;br /&gt;&lt;br /&gt;Donde :&lt;br /&gt;&lt;br /&gt;Manzanas son poligonos&lt;br /&gt;Localidades son puntos&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1444891085365591821-6359843902138013768?l=abrsanchez.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://abrsanchez.blogspot.com/feeds/6359843902138013768/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1444891085365591821&amp;postID=6359843902138013768' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1444891085365591821/posts/default/6359843902138013768'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1444891085365591821/posts/default/6359843902138013768'/><link rel='alternate' type='text/html' href='http://abrsanchez.blogspot.com/2011/12/detectar-el-elemento-mas-cercano.html' title='Detectar el elemento mas cercano'/><author><name>Abraham Sanchez</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_v5dIAsDiONI/TNRV4EZxNqI/AAAAAAAABDw/08jVRy_Y9Rw/S220/foto0040.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1444891085365591821.post-2015397889076168851</id><published>2011-11-30T10:49:00.000-08:00</published><updated>2011-11-30T10:54:21.773-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Opinión'/><title type='text'>Contrato temporal</title><content type='html'>He terminado mi contrato temporal con el instituto territorial. Básicamente desarrolle unos cuantos controles para la manipulación de cartografía, vinculación de cartografía a registros existentes en la base de datos del estado, importación de archivos shape, etc..&lt;br /&gt;&lt;br /&gt;Últimamente he tenido la sensación de salirme de mi trabajo – por aquello del crecimiento - , pero la especialización es buena, al menos me han recomendado que lo haga. He decidido por esta razon seguir tomando cursos de cartografia; para esto, pues obviamente pediré ayuda con los jefes de la empresa para que me apoyen en estos cursos.&lt;br /&gt;&lt;br /&gt;Posiblemente en un futuro el jefe me da chance de entrar a gobierno y percibir ingresos extras o igual mi esposa, ya el tiempo lo dirá. Por lo pronto, me quedare aquí y seguiré capacitándome en cursos para no sentir que me quedo atrás en cuanto a tecnologías; pero como dije, todo enfocado en la cartografía.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1444891085365591821-2015397889076168851?l=abrsanchez.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://abrsanchez.blogspot.com/feeds/2015397889076168851/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1444891085365591821&amp;postID=2015397889076168851' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1444891085365591821/posts/default/2015397889076168851'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1444891085365591821/posts/default/2015397889076168851'/><link rel='alternate' type='text/html' href='http://abrsanchez.blogspot.com/2011/11/contrato-temporal.html' title='Contrato temporal'/><author><name>Abraham Sanchez</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_v5dIAsDiONI/TNRV4EZxNqI/AAAAAAAABDw/08jVRy_Y9Rw/S220/foto0040.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1444891085365591821.post-7570310284207460279</id><published>2011-11-22T16:36:00.001-08:00</published><updated>2011-11-24T14:45:23.165-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SQL SERVER'/><title type='text'>FORZAR LA DESCONEXION DE UNA BD SQL SERVER</title><content type='html'>USE master&lt;br /&gt;&lt;br /&gt;EXEC sp_KillProcess 'DB'  &lt;br /&gt;&lt;br /&gt;-- **** PARA PONER LA BD OFFLINE&lt;br /&gt;ALTER DATABASE DB&lt;br /&gt;SET OFFLINE  &lt;br /&gt;WITH ROLLBACK IMMEDIATE&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1444891085365591821-7570310284207460279?l=abrsanchez.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://abrsanchez.blogspot.com/feeds/7570310284207460279/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1444891085365591821&amp;postID=7570310284207460279' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1444891085365591821/posts/default/7570310284207460279'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1444891085365591821/posts/default/7570310284207460279'/><link rel='alternate' type='text/html' href='http://abrsanchez.blogspot.com/2011/11/forzar-la-desconexion-de-una-bd-sql.html' title='FORZAR LA DESCONEXION DE UNA BD SQL SERVER'/><author><name>Abraham Sanchez</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_v5dIAsDiONI/TNRV4EZxNqI/AAAAAAAABDw/08jVRy_Y9Rw/S220/foto0040.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1444891085365591821.post-315888379242592404</id><published>2011-11-21T09:06:00.000-08:00</published><updated>2011-11-21T09:13:35.704-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Oracle'/><title type='text'>Configurar datos geométricos en Oracle</title><content type='html'>En cuestión de capas geométricas es importante considerar algunos aspectos:&lt;br /&gt;- Las capas se manejaran por tablas o vistas?&lt;br /&gt;- La capa geométrica se encuentra registrada en la tabla correspondiente de datos geométricos?.&lt;br /&gt;- Se han creado correctamente los índices, y dentro de este, se encuentra configurado correctamente el tipo de dato geométrico que contendrá la capa?.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Agregar capas geométricas&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Por ejemplo, si queremos agregar 4 capas; 2 tablas, TABLA1 y TABLA2; 2 vistas, VW_TABLA1 y VW_TABLA2.&lt;br /&gt;&lt;br /&gt;Corremos la siguiente sentencia en Oracle:&lt;br /&gt;&lt;br /&gt;SELECT * FROM USER_SDO_GEOM_METADATA&lt;br /&gt;Verificamos que las 4 capas estén registradas; es importante mencionar que USER_SDO_GEOM_METADA es una tabla del schema MDSYS no es una tabla del schema GTO.&lt;br /&gt;&lt;br /&gt;En caso de no existir alguna capa registrada la agregamos de la siguiente forma:&lt;br /&gt;&lt;br /&gt;INSERT INTO User_SDO_Geom_Metadata (table_name,column_name,diminfo,srid) VALUES ('VW_TABLA2', 'GEOM',         MDSYS.SDO_DIM_ARRAY(MDSYS.SDO_DIM_ELEMENT('X',178338,430380,0.5),MDSYS.SDO_DIM_ELEMENT('Y',2202847,2417710,0.5)),32614);&lt;br /&gt;MDSYS.SDO_DIM_ELEMENT(SDO_DIMNAME,SDO_LB,SDO_UB,SDO_TOLERANCE)&lt;br /&gt;MDSYS.SDO_DIM_ELEMENT('X',178338,430380,0.5)&lt;br /&gt;&lt;br /&gt;Dónde:&lt;br /&gt;&lt;br /&gt;SDO_DIMNAME : indica el parámetro al que se establecerá las coordenadas mínimas y máximas&lt;br /&gt;SDO_LB : Coordenada mínima en SDODIMNAME&lt;br /&gt;SDO_UB : Coordenada máxima en SDODIMNAME&lt;br /&gt;SDO_TOLERANCE : Es una forma de garantizar que tendrás consistencia y resultados aceptables atreves de diferentes plataformas y aplicaciones en pocas palabras déjalas en 0.5 no le muevas..&lt;br /&gt;&lt;br /&gt;Si lo comparamos con SQL Server estos son los datos espaciales XMIN, XMAX, YMIN, YMAX&lt;br /&gt;Agregar índices espaciales&lt;br /&gt;Una vez registradas todas las capas en la table USER_SDO_GEOM_METADA, verificamos que los índices se encuentren creados para cada una de las capas. En caso de no existir algún índice espacial lo creamos de la siguiente forma:&lt;br /&gt;&lt;br /&gt;CREATE INDEX VW_TABLA2_SIdx ON VW_TABLA2 (GEOM)&lt;br /&gt;INDEXTYPE IS MDSYS.SPATIAL_INDEX PARAMETERS ('LAYER_GTYPE=MULTIPOLYGON')&lt;br /&gt;&lt;br /&gt;Como se puede observar, se está creando un índice sobre una vista. Al ejecutar esta sentencia nos arrojara un error como el sigue:&lt;br /&gt;&lt;br /&gt;Error que empieza en la línea 3 del comando:&lt;br /&gt;CREATE INDEX VW_TABLA2_SIdx ON VW_TABLE2 (GEOM)&lt;br /&gt;INDEXTYPE IS MDSYS.SPATIAL_INDEX PARAMETERS ('LAYER_GTYPE=MULTIPOLYGON')&lt;br /&gt;Error en la línea de comandos:3 Columna:40&lt;br /&gt;Informe de error:&lt;br /&gt;Error SQL: ORA-01702: una vista no es apropiada aquí&lt;br /&gt;01702. 00000 -  "a view is not appropriate here"&lt;br /&gt;*Cause:    &lt;br /&gt;*Action:&lt;br /&gt;&lt;br /&gt;Aun con este error es importante  crear estos índices, posiblemente es un bug de Oracle pero si no lo hacemos de esa manera, la lectura de las capas en thinkgeo nos mandara un error.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1444891085365591821-315888379242592404?l=abrsanchez.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://abrsanchez.blogspot.com/feeds/315888379242592404/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1444891085365591821&amp;postID=315888379242592404' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1444891085365591821/posts/default/315888379242592404'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1444891085365591821/posts/default/315888379242592404'/><link rel='alternate' type='text/html' href='http://abrsanchez.blogspot.com/2011/11/configurar-datos-geometricos-en-oracle.html' title='Configurar datos geométricos en Oracle'/><author><name>Abraham Sanchez</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_v5dIAsDiONI/TNRV4EZxNqI/AAAAAAAABDw/08jVRy_Y9Rw/S220/foto0040.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1444891085365591821.post-621650019474108696</id><published>2011-11-16T10:09:00.000-08:00</published><updated>2011-11-16T12:57:18.759-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Oracle'/><title type='text'>Import, Export en Oracle</title><content type='html'>Esta entrada es parte de una serie de paginas que escribí para realizar respaldos con ORACLE.&lt;br /&gt;&lt;br /&gt;Incluira tambien la preparacion de la base de datos para manipular cartografia..&lt;br /&gt;&lt;br /&gt;Este documento seguido se pierde y no se porque - bueno, en realidad si - tenemos un desmandre de documentos regados por todos lados..&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Introducción&lt;br /&gt;&lt;br /&gt;Hay varios tipos de respaldos en Oracle. Primero, tenemos los respaldos lógicos y respaldo físicos. Los respaldos lógicos se llevan a cabo con utilerías export de Oracle. Los respaldos físicos se llevan a cabo en caliente y frio. Con los respaldos en frio, se debe apagar la base de datos y copiar los datafiles de la base de datos a un respaldo destino. Los respaldos en caliente son los más óptimos para usar RMAN ya que no es necesario apagar la base de datos. RMAN ofrece diferentes tipos de respaldos. Con RMAN se pude respaldar una base de datos completa, respaldar  table spaces específicos y también optimizar los respaldos incrementales.&lt;br /&gt;Este documento se enfoca en los respaldos lógicos, Import y Export, los cuales permiten respaldar y restaurar una base de datos completa, así como usuarios y tablas específicas en base a un archivo  dump.&lt;br /&gt;Una vez restaurada una base de datos de datos con datos espaciales, se deben tomar en cuenta la configuración de algunas tablas e índices para interactuar con dichos datos.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Respaldar una base de datos&lt;/span&gt;&lt;br /&gt;Antes de iniciar con el respaldo es necesario tener instalado  el cliente de Oracle y asegurarse que las aplicaciones imp y exp se encuentren en el directorio bin.&lt;br /&gt;Iniciar un ventana de comandos y teclear el comando exp (exportar). Posteriormente  pide los datos de autenticación; es importante  tomar en cuenta que el usuario con el que se desea autenticar debe tener los permisos para llevar a cabo esta tarea.&lt;br /&gt;&lt;br /&gt;Enter array fetch buffer size: 4096 &gt;&lt;br /&gt;Export file: EXPDAT.DMP &gt;&lt;br /&gt;(1)E(ntire database), (2)U(sers), or (3)T(ables): (2)U &gt; 2&lt;br /&gt;Export grants (sÝ/no): sÝ &gt; &lt;br /&gt;Export table data (sÝ/no): sÝ &gt; &lt;br /&gt;Compress extents (sÝ/no): sÝ &gt; &lt;br /&gt;About to export specified users ...&lt;br /&gt;User to be exported: (RETURN to quit) &gt; gto&lt;br /&gt;User to be exported: (RETURN to quit) &gt;&lt;br /&gt;&lt;br /&gt;Una vez configurados todo los parametros  se da un enter y comenza la exportación de datos en el archivo EXPDAT.DMP..&lt;br /&gt;&lt;br /&gt;. exporting pre-schema procedural objects and actions&lt;br /&gt;. exporting foreign function library names for user GTO&lt;br /&gt;. exporting PUBLIC type synonyms&lt;br /&gt;. exporting private type synonyms&lt;br /&gt;. exporting object type definitions for user GTO&lt;br /&gt;&lt;br /&gt;About to export GTO's objects ...&lt;br /&gt;&lt;br /&gt;. exporting database links&lt;br /&gt;. exporting sequence numbers&lt;br /&gt;. exporting cluster definitions&lt;br /&gt;. about to export GTO's tables via Conventional Path ...&lt;br /&gt;. . exporting table                AREASHOMOGENEAS          2 rows exported&lt;br /&gt;. . exporting table                    CHANGETABLE        202 rows exported&lt;br /&gt;&lt;br /&gt;etc, etc, etc..&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Restauración de una base de datos&lt;/span&gt;&lt;br /&gt;Iniciar un ventana de comandos y teclear el comando imp (importar) . Posteriormente  pide los datos de autenticación;  el usuario con el que se desea importar el archivo DMP, debe de existir en la base de datos destino y este debe contar con los permisos correspondiente.&lt;br /&gt;Una vez autenticado nos pedirá una serie de parámetros configurables. Como recomendación se dejan los valores por default y solo se da enter por cada parámetro requerido. &lt;br /&gt;&lt;br /&gt;Import file: EXPDAT.DMP &gt;&lt;br /&gt;Enter insert buffer size (minimum is 8192) 30720&gt;&lt;br /&gt;Export file created by EXPORT:V11.01.00 via conventional path&lt;br /&gt;import done in WE8MSWIN1252 character set and AL16UTF16 NCHAR character set&lt;br /&gt;List contents of import file only (sÝ/no): no &gt;&lt;br /&gt;Ignore create error due to object existence (sÝ/no): no &gt;&lt;br /&gt;Import grants (sÝ/no): sÝ &gt;&lt;br /&gt;Import table data (sÝ/no): sÝ &gt;&lt;br /&gt;Import entire export file (sÝ/no): no &gt; s  (Este parametro se debe cambiar a ‘s’ de los contrario se tendrían que especificar manualmente que tablas queremos importar)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Está básica esta primera entrada; pero yo le batalle para usar los respaldos cold y hot backup. Estuve preguntando a otros que trabajan con Oracle y prefieren usar los respaldos logicos (imp, exp), ya que son mas sencillos de usar..&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1444891085365591821-621650019474108696?l=abrsanchez.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://abrsanchez.blogspot.com/feeds/621650019474108696/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1444891085365591821&amp;postID=621650019474108696' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1444891085365591821/posts/default/621650019474108696'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1444891085365591821/posts/default/621650019474108696'/><link rel='alternate' type='text/html' href='http://abrsanchez.blogspot.com/2011/11/import-export-en-oracle.html' title='Import, Export en Oracle'/><author><name>Abraham Sanchez</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_v5dIAsDiONI/TNRV4EZxNqI/AAAAAAAABDw/08jVRy_Y9Rw/S220/foto0040.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1444891085365591821.post-6693734114473307469</id><published>2011-11-14T14:54:00.001-08:00</published><updated>2011-11-15T10:13:15.469-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SQL Spatial'/><title type='text'>Window Functions in SQL Server</title><content type='html'>Cuantos no hemos intentado hacer esto :&lt;br /&gt;SELECT ID,&lt;br /&gt;       Value,&lt;br /&gt;       SUM(Value) AS "Sum"&lt;br /&gt;       AVG(Value) AS "Avg"&lt;br /&gt;       COUNT(Value) AS "Quantity"   FROM TestAggregation&lt;br /&gt;GROUP BY ID;&lt;br /&gt;&lt;br /&gt;error!!!!!!!!!!!&lt;br /&gt;&lt;br /&gt;Msg 8120, Level 16, State 1, Line 2&lt;br /&gt;&lt;br /&gt;Column 'TestAggregation.Value' is invalid in the select list because it is not contained in either an aggregate function or the GROUP BY clause.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;se podria resolver con consultas anidadas pero esto es inficiente y el rendimiento pues ni que decir..&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;con window functions lo resolvemos de un manera elegante ...&lt;br /&gt;&lt;br /&gt;SELECT ID,&lt;br /&gt;       Value,&lt;br /&gt;       SUM(Value) OVER(PARTITION BY ID) AS "Sum"&lt;br /&gt;       AVG(Value) OVER(PARTITION BY ID) AS "Avg"&lt;br /&gt;       COUNT(Value) OVER(PARTITION BY ID) AS "Quantity"&lt;br /&gt;   FROM TestAggregation&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;para mas informacion, checalo en el siguiente enlace...&lt;br /&gt;http://www.simple-talk.com/sql/learn-sql-server/window-functions-in-sql-server/&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1444891085365591821-6693734114473307469?l=abrsanchez.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://abrsanchez.blogspot.com/feeds/6693734114473307469/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1444891085365591821&amp;postID=6693734114473307469' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1444891085365591821/posts/default/6693734114473307469'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1444891085365591821/posts/default/6693734114473307469'/><link rel='alternate' type='text/html' href='http://abrsanchez.blogspot.com/2011/11/window-functions-in-sql-server.html' title='Window Functions in SQL Server'/><author><name>Abraham Sanchez</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_v5dIAsDiONI/TNRV4EZxNqI/AAAAAAAABDw/08jVRy_Y9Rw/S220/foto0040.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1444891085365591821.post-2771295394647948121</id><published>2011-11-14T08:32:00.000-08:00</published><updated>2011-11-14T13:51:05.519-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Map Suite'/><title type='text'>Acotaciones</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/-i-1Hfrs2F20/TsFCo2q4CyI/AAAAAAAABPY/jG2fkn5yB18/s1600/Captura.PNG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 170px;" src="http://3.bp.blogspot.com/-i-1Hfrs2F20/TsFCo2q4CyI/AAAAAAAABPY/jG2fkn5yB18/s320/Captura.PNG" border="0" alt=""id="BLOGGER_PHOTO_ID_5674890275101084450" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Una muestra de lo que se puede hacer con operaciones geometricas.. &lt;br /&gt;&lt;br /&gt;El script para acotar poligonos, es uno de los mas complejos y de los cuales me puedo sentir mas orgulloso. Tardé un par de dias en hacer esto, pero ahora, con un solo objeto se puede implementar para cualquier clase que implemente un mapa..&lt;br /&gt;&lt;br /&gt;posteriormente estare pegando unas lineas clave para poder implementar esto con sql server y map suite..&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1444891085365591821-2771295394647948121?l=abrsanchez.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://abrsanchez.blogspot.com/feeds/2771295394647948121/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1444891085365591821&amp;postID=2771295394647948121' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1444891085365591821/posts/default/2771295394647948121'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1444891085365591821/posts/default/2771295394647948121'/><link rel='alternate' type='text/html' href='http://abrsanchez.blogspot.com/2011/11/acotaciones.html' title='Acotaciones'/><author><name>Abraham Sanchez</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_v5dIAsDiONI/TNRV4EZxNqI/AAAAAAAABDw/08jVRy_Y9Rw/S220/foto0040.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/-i-1Hfrs2F20/TsFCo2q4CyI/AAAAAAAABPY/jG2fkn5yB18/s72-c/Captura.PNG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1444891085365591821.post-880855136458769923</id><published>2011-11-11T18:10:00.000-08:00</published><updated>2011-11-14T13:49:50.753-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SQL Spatial'/><title type='text'>Cambiar el SRID de una Capa</title><content type='html'>Capa = Tabla con un campo geometry o geography&lt;br /&gt;&lt;br /&gt;Hace ya varios ayeres que un nuevo cliente adquirió el sistema (Durango). Se les migro todas las tablas del sistema, se les migraron las tablas de configuracion de los mapas, las tablas de parametros, etc, etc, etc..&lt;br /&gt;&lt;br /&gt;Cuando el cliente intento probar el sistema, resulta que no podia ver ni madres en pantalla; solo podian ver los datos alfanumericos...&lt;br /&gt;&lt;br /&gt;porque??? dos dias gaste resolviendo este problema y la menera de resolverlo fue cambiando el SRID..&lt;br /&gt;&lt;br /&gt;Que es el SRID ..&lt;br /&gt;Cada instancia espacial tiene un identificador de referencia espacial (SRID). El SRID corresponde a un sistema de referencia espacial basado en el elipsoide concreto usado para la creación de mapas de tierra plana o de tierra redonda. Una columna espacial puede contener objetos con SRID diferentes. Sin embargo, sólo se pueden usar instancias espaciales con el mismo SRID al realizar operaciones con métodos de datos espaciales de SQL Server en sus datos. El resultado de cualquier método espacial derivado de dos instancias de datos espaciales sólo es válido si dichas instancias tienen el mismo SRID basado en la misma unidad de medida, dato y proyección usados para determinar las coordenadas de las instancias. Las unidades de medida más comunes de un SRID son metros o metros cuadrados.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;En pocas palabras el SRID contiene la informacion para georeferenciar los elementos cartograficos..&lt;br /&gt;&lt;br /&gt;resulta que me estaba basando en los datos de guanajuato con el SRID 32614 y Durango es 32613&lt;br /&gt;&lt;br /&gt;para cambiar este dato y poder visualizar correctamtente la cartografia fue necesario aplicar la siguiente sentencia :&lt;br /&gt;&lt;br /&gt;UPDATE Vialidades SET Geom = geometry::STGeomFromText(Geom.STAsText(), 32613)&lt;br /&gt;where Geom is not null &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;y listo ya pude ver la cartografia...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1444891085365591821-880855136458769923?l=abrsanchez.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://abrsanchez.blogspot.com/feeds/880855136458769923/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1444891085365591821&amp;postID=880855136458769923' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1444891085365591821/posts/default/880855136458769923'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1444891085365591821/posts/default/880855136458769923'/><link rel='alternate' type='text/html' href='http://abrsanchez.blogspot.com/2011/11/cambiar-el-srid-de-capa.html' title='Cambiar el SRID de una Capa'/><author><name>Abraham Sanchez</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_v5dIAsDiONI/TNRV4EZxNqI/AAAAAAAABDw/08jVRy_Y9Rw/S220/foto0040.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1444891085365591821.post-6915783691053785063</id><published>2011-11-11T10:19:00.000-08:00</published><updated>2011-11-14T13:49:54.333-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SQL Spatial'/><title type='text'>Validar topología de un elemento geográfico</title><content type='html'>Muchas veces sucede que al digitalizar un poligono hay interseccion de vertices y los segmentos se intersectan. Esto genera un error topologico y es necesario hacer valido el elemento geografico antes de guardarlo en la base de datos o realizar alguna operacion con este.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;DECLARE @geomAreaHomogenea as geometry&lt;br /&gt;     &lt;br /&gt;SELECT @geomAreaHomogenea = geometry::STGeomFromWKB(@Geom, @iSRID)&lt;br /&gt;    &lt;br /&gt;IF @geomAreaHomogenea.STIsValid() = 0&lt;br /&gt;BEGIN&lt;br /&gt;    SET @geomAreaHomogenea=@geomAreaHomogenea.MakeValid()&lt;br /&gt;END&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1444891085365591821-6915783691053785063?l=abrsanchez.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://abrsanchez.blogspot.com/feeds/6915783691053785063/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1444891085365591821&amp;postID=6915783691053785063' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1444891085365591821/posts/default/6915783691053785063'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1444891085365591821/posts/default/6915783691053785063'/><link rel='alternate' type='text/html' href='http://abrsanchez.blogspot.com/2011/11/validar-topologia-de-un-elemento.html' title='Validar topología de un elemento geográfico'/><author><name>Abraham Sanchez</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_v5dIAsDiONI/TNRV4EZxNqI/AAAAAAAABDw/08jVRy_Y9Rw/S220/foto0040.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1444891085365591821.post-5811295863837010567</id><published>2011-11-10T17:11:00.000-08:00</published><updated>2011-11-14T13:49:58.998-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SQL Spatial'/><title type='text'>Obtener el indicie espacial para una tabla geometrica</title><content type='html'>Un índice espacial sólo se puede crear en una columna espacial, es decir, una columna del tipo geometry o geography&lt;br /&gt;&lt;br /&gt;Este sirve para indexar las columnas geometricas y agilizar la busqueda de datos geometricos..&lt;br /&gt;&lt;br /&gt;Un indice espacial se compone de 4 datos XMIN, YMIN, XMAX, YMAX tambien llamado extent en map suite..&lt;br /&gt;&lt;br /&gt;En el siguiente ejemplos e trata de obtener el indice espacial para las tablas de cierta entidad de la republica..&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;DECLARE @Geom Geometry&lt;br /&gt;DECLARE @XMin AS DECIMAL(10,0), @YMin AS DECIMAL(10,0), @XMax AS  DECIMAL(10,0), @YMax AS DECIMAL(10,0)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;SELECT @Geom = Geom FROM Estados WHERE IDEstado = @strEstado&lt;br /&gt;&lt;br /&gt;SET @Geom = @Geom.STEnvelope();&lt;br /&gt;SET @XMin = CAST(ROUND(@Geom.STPointN(1).STX, 0) AS DECIMAL(10,0))&lt;br /&gt;SET @YMin = CAST(ROUND(@Geom.STPointN(1).STY, 0) AS DECIMAL(10,0))&lt;br /&gt;SET @XMax = CAST(ROUND(@Geom.STPointN(3).STX, 0) AS DECIMAL(10,0))&lt;br /&gt;SET @YMax = CAST(ROUND(@Geom.STPointN(3).STY, 0) AS DECIMAL(10,0))&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;ahora, supongamos que no tenemos la entidad pero solo tenemos los municipios. &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;DECLARE @Geom Geometry SET @Geom = GEOMETRY::STGeomFromText('GEOMETRYCOLLECTION EMPTY', 32614) &lt;br /&gt;&lt;br /&gt;select @Geom = @Geom.STUnion(Geom) from dbo.Municipios WHERE Geom IS NOT null; &lt;br /&gt;&lt;br /&gt;UPDATE dbo.Estados SET Geom = @Geom WHERE IdEstado = @strIdEstado&lt;br /&gt;&lt;br /&gt;la union de todos los municipios da por resultado el contorno de un estado y usando la function geometrica STUnion se logra dicha union..&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1444891085365591821-5811295863837010567?l=abrsanchez.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://abrsanchez.blogspot.com/feeds/5811295863837010567/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1444891085365591821&amp;postID=5811295863837010567' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1444891085365591821/posts/default/5811295863837010567'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1444891085365591821/posts/default/5811295863837010567'/><link rel='alternate' type='text/html' href='http://abrsanchez.blogspot.com/2011/11/obtener-el-indicie-espacial-para-una.html' title='Obtener el indicie espacial para una tabla geometrica'/><author><name>Abraham Sanchez</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_v5dIAsDiONI/TNRV4EZxNqI/AAAAAAAABDw/08jVRy_Y9Rw/S220/foto0040.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1444891085365591821.post-2959994414922973389</id><published>2011-11-10T15:28:00.001-08:00</published><updated>2011-11-14T13:50:03.379-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SQL Spatial'/><title type='text'>Geometrias duplicadas</title><content type='html'>Este script me costo un buen a pesar de lo simple que se ve. La clave esta en la sentencia %%physloc%%. &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;SELECT *  FROM PREDIOS WHERE &lt;br /&gt;PREDIOS.%%physloc%%&lt;br /&gt;NOT IN (SELECT MIN(b.%%physloc%%)&lt;br /&gt;              FROM   Predios &lt;br /&gt;              GROUP BY Predios.geom.STArea(), Predios.geom.STCentroid().STX, Predios.geom.STCentroid().STY)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1444891085365591821-2959994414922973389?l=abrsanchez.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://abrsanchez.blogspot.com/feeds/2959994414922973389/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1444891085365591821&amp;postID=2959994414922973389' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1444891085365591821/posts/default/2959994414922973389'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1444891085365591821/posts/default/2959994414922973389'/><link rel='alternate' type='text/html' href='http://abrsanchez.blogspot.com/2011/11/geometrias-duplicadas.html' title='Geometrias duplicadas'/><author><name>Abraham Sanchez</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_v5dIAsDiONI/TNRV4EZxNqI/AAAAAAAABDw/08jVRy_Y9Rw/S220/foto0040.jpg'/></author><thr:total>0</thr:total></entry></feed>
