<?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-4194726798732643561</id><updated>2012-02-16T08:09:11.094Z</updated><category term='DBF'/><category term='Google Maps'/><category term='KML'/><category term='Localização'/><category term='ZPE'/><category term='ICN'/><category term='GDAL'/><category term='ETRS89 / Portugal TM06'/><category term='autocad'/><category term='Personal Geodatabase'/><category term='microstation'/><category term='UTM'/><category term='dwg'/><category term='Autocad Map 2008'/><category term='WMS'/><category term='ogr2gui'/><category term='Google Earth'/><category term='PhotoSketch'/><category term='Licenciamento Municipal'/><category term='Ortofotomapas'/><category term='Levantamentos Topográficos'/><category term='dgn'/><category term='MapWindow'/><category term='Sistemas de Referência'/><category term='Freeport'/><category term='Geoespacial'/><category term='WGS84'/><category term='feature class'/><category term='shapefile'/><category term='ogr2ogr'/><category term='Digital Elevation Model'/><category term='Openlayers'/><category term='Generalização'/><category term='Hayford-Gauss Datum 73'/><category term='REST'/><category term='Applets'/><category term='Ranking'/><category term='Hayford-Gauss Datum Lisboa'/><category term='Douglas-Peucker'/><category term='altitude'/><category term='dxf'/><category term='Geográficas Datum 73'/><category term='OGR'/><category term='Shape Files'/><category term='Java'/><category term='Cartografia Temática'/><category term='EPSG'/><category term='Google Sketchup'/><category term='Geográficas Datum Lisboa'/><category term='Shape2Earth'/><category term='Simbologia'/><category term='PROJ'/><category term='Aster'/><category term='3D'/><category term='Ruby'/><category term='Simplificação'/><category term='Software Top 100'/><category term='IGP'/><category term='PhotoSynth'/><title type='text'>Geo-Divagações</title><subtitle type='html'>Mashups para todos</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://geodivagar.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4194726798732643561/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://geodivagar.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Luís Tavares</name><uri>http://www.blogger.com/profile/15564364674180846843</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>74</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-4194726798732643561.post-173504950166711500</id><published>2011-11-20T00:11:00.003Z</published><updated>2011-11-20T00:43:11.156Z</updated><title type='text'>1 milhão de pontos sobre o mapa</title><content type='html'>&lt;div style="text-align: justify;"&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;Independentemente da existência de uma situação real em que seja necessário representar 1 milhão de pontos sobre o mapa, a verdade é que os tipos do &lt;a href="http://www.giscloud.com/"&gt;GIS Cloud&lt;/a&gt; passaram a disponibilizar &lt;a href="http://www.giscloud.com/blog/gis-cloud-starts-html5-mapping-revolution"&gt;recentemente&lt;/a&gt; tecnologia que permite fazer isso e muito mais. Andam a utilizar HTML5 intensivamente e a recorrer à API de JavaScript &lt;a href="http://leaflet.cloudmade.com/"&gt;Leaflet&lt;/a&gt; da &lt;a href="http://cloudmade.com/"&gt;CloudMade&lt;/a&gt;, contribuindo inclusivamente para a mesma. Mais, têm o seu próprio repositório no &lt;a href="https://github.com/giscloud/Leaflet"&gt;GitHub&lt;/a&gt;. Os ganhos em performance são bastante interessantes.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;iframe src="http://www.giscloud.com/rest/1/maps/16671/render.iframe?bound=-251.71875,179.234375,251.71875,-151.234375&amp;amp;toolbar=true&amp;amp;layerlist=true" frameborder="0" height="400" width="600"&gt;&lt;/iframe&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4194726798732643561-173504950166711500?l=geodivagar.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='text/html' href='http://geodivagar.blogspot.com/2011/11/1-milhao-de-pontos-sobre-o-mapa.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4194726798732643561/posts/default/173504950166711500'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4194726798732643561/posts/default/173504950166711500'/><link rel='alternate' type='text/html' href='http://geodivagar.blogspot.com/2011/11/1-milhao-de-pontos-sobre-o-mapa.html' title='1 milhão de pontos sobre o mapa'/><author><name>Luís Tavares</name><uri>http://www.blogger.com/profile/15564364674180846843</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4194726798732643561.post-6508472444921200551</id><published>2011-10-03T21:42:00.001+01:00</published><updated>2011-10-03T21:46:56.777+01:00</updated><title type='text'>Combinando diferentes API com diversos serviços de mapas</title><content type='html'>&lt;h4&gt;Combinando diferentes API com diversos serviços de mapas&lt;/h4&gt;&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;API Google Maps com serviços de mapas do ArcGIS Online:&lt;/li&gt;&lt;br /&gt;&lt;iframe src="http://geomatica.no.sapo.pt/google_agol.html" width="600px" height="400px"&gt; &lt;/iframe&gt;&lt;br /&gt;&lt;li&gt;API OpenLayers com serviços de mapas do ArcGIS Online:&lt;/li&gt;&lt;br /&gt;&lt;iframe src="http://geomatica.no.sapo.pt/ol_agol.html" width="600px" height="400px"&gt; &lt;/iframe&gt;&lt;br /&gt;&lt;li&gt;ArcGIS JavaScript API com serviços de mapas Google e ArcGIS Online:&lt;/li&gt;&lt;br /&gt;&lt;iframe src="http://geomatica.no.sapo.pt/gmapslayer.html" width="600px" height="400px"&gt; &lt;/iframe&gt;&lt;br /&gt;&lt;br /&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4194726798732643561-6508472444921200551?l=geodivagar.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='text/html' href='http://geodivagar.blogspot.com/2011/10/combinando-diferentes-api-com-diversos.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4194726798732643561/posts/default/6508472444921200551'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4194726798732643561/posts/default/6508472444921200551'/><link rel='alternate' type='text/html' href='http://geodivagar.blogspot.com/2011/10/combinando-diferentes-api-com-diversos.html' title='Combinando diferentes API com diversos serviços de mapas'/><author><name>Luís Tavares</name><uri>http://www.blogger.com/profile/15564364674180846843</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4194726798732643561.post-2624473533142248064</id><published>2011-06-17T19:18:00.003+01:00</published><updated>2011-06-17T20:05:02.204+01:00</updated><title type='text'>Yahoo! Maps Web Services - RIP</title><content type='html'>&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Segundo informação constante da página principal dos &lt;a href="http://developer.yahoo.com/maps/"&gt;Yahoo! Maps Web Services&lt;/a&gt; , estes deixarão de estar disponíveis em Setembro de 2011:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;"We are shutting down this service on September 13, 2011. We suggest using maps from our partner Nokia. Please visit the &lt;/span&gt;&lt;a style="font-family: courier new;" href="http://api.maps.ovi.com/"&gt;Ovi Maps API&lt;/a&gt;&lt;span style="font-family:courier new;"&gt; for more information." &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;E remetem para a &lt;a href="http://api.maps.ovi.com/"&gt;API de Mapas&lt;/a&gt; da Nokia, a qual quanto muito é comparável, e não falo qualitativamente, à &lt;a href="http://developer.yahoo.com/maps/ajax/"&gt;AJAX API&lt;/a&gt; da Yahoo.&lt;br /&gt;&lt;br /&gt;Aparentemente, ficaram de fora desta razia a &lt;a href="http://developer.yahoo.com/geo/placefinder/"&gt;Placefinder API&lt;/a&gt; (o mais recente serviço de &lt;span style="font-style: italic;"&gt;geocoding&lt;/span&gt; da Yahoo), bem como a versão anterior: &lt;a href="http://developer.yahoo.com/maps/rest/V1/geocode.html"&gt;Geocoding API&lt;/a&gt; a qual já se encontrava &lt;span style="font-style: italic;"&gt;deprecated&lt;/span&gt;.&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;Tudo o resto, pelos vistos, desaparece, incluindo serviços que não são disponibilizados pela Nokia como por exemplo, &lt;a href="http://developer.yahoo.com/flash/maps/"&gt;ActionScript 3 Flash API&lt;/a&gt; ou a &lt;a href="http://developer.yahoo.com/maps/rest/V1/"&gt;REST API (Map Image API)&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Será que a Nokia irá disponibilizar serviços semelhantes aos que irão ser descontinuados?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4194726798732643561-2624473533142248064?l=geodivagar.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='text/html' href='http://geodivagar.blogspot.com/2011/06/yahoo-maps-web-services-rip.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4194726798732643561/posts/default/2624473533142248064'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4194726798732643561/posts/default/2624473533142248064'/><link rel='alternate' type='text/html' href='http://geodivagar.blogspot.com/2011/06/yahoo-maps-web-services-rip.html' title='Yahoo! Maps Web Services - RIP'/><author><name>Luís Tavares</name><uri>http://www.blogger.com/profile/15564364674180846843</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4194726798732643561.post-1106404948849424568</id><published>2011-03-10T12:37:00.003Z</published><updated>2011-03-10T12:59:25.368Z</updated><title type='text'>GMaps + proj4js</title><content type='html'>&lt;div style="text-align: justify;"&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;Até agora disponibilizava uma  &lt;span style="font-style: italic;"&gt;&lt;a href="http://geomatica.no.sapo.pt/"&gt;demo&lt;/a&gt;&lt;/span&gt; onde era possível clicar no mapa do Google e saber as coordenadas PTTM06/ETRS89. A conversão era feita do lado do servidor e a &lt;a style="font-style: italic;" href="http://geomatica.no.sapo.pt/"&gt;demo&lt;/a&gt; servia para demonstrar a utilização do &lt;span style="font-style: italic;"&gt;Web Service&lt;/span&gt;:&lt;br /&gt;&lt;a href="http://geodivagar.appspot.com/geogauss?lat=38.01132704&amp;amp;lng=-7.87167688"&gt;http://geodivagar.appspot.com/geogauss?lat=38.01132704&amp;amp;lng=-7.87167688&amp;amp;callback=foo&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Agora é na mesma possível clicar no mapa para saber as coordenadas, podendo no entanto ser escolhido, &lt;span style="font-style: italic;"&gt;a priori,&lt;/span&gt; de entre vários sistemas de coordenadas utilizados em Portugal. A saber:&lt;br /&gt;&lt;/div&gt;&lt;ul style="text-align: justify;"&gt;&lt;li&gt;Geográficas ETRS89;&lt;/li&gt;&lt;li&gt;PTTM06/ETRS89;&lt;/li&gt;&lt;li&gt;Hayford-Gauss Datum 73;&lt;/li&gt;&lt;li&gt;Hayford-Gauss Datum Lisboa;&lt;/li&gt;&lt;li&gt;Hayford-Gauss Militar.&lt;/li&gt;&lt;/ul&gt;&lt;div style="text-align: justify;"&gt;Além disso, a transformação de coordenadas é agora realizada &lt;span style="font-style: italic;"&gt;client-side&lt;/span&gt; sendo utilizada a biblioteca &lt;span style="font-style: italic;"&gt;proj4js&lt;/span&gt; configurada com os parâmetros adequados a Portugal, já divulgada no conversor disponível &lt;a href="http://geomatica.no.sapo.pt/proj4js.html"&gt;aqui&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://geomatica.no.sapo.pt/"&gt;Demo&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4194726798732643561-1106404948849424568?l=geodivagar.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='text/html' href='http://geodivagar.blogspot.com/2011/03/gmaps-proj4js.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4194726798732643561/posts/default/1106404948849424568'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4194726798732643561/posts/default/1106404948849424568'/><link rel='alternate' type='text/html' href='http://geodivagar.blogspot.com/2011/03/gmaps-proj4js.html' title='GMaps + proj4js'/><author><name>Luís Tavares</name><uri>http://www.blogger.com/profile/15564364674180846843</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4194726798732643561.post-5422166042292063412</id><published>2011-03-04T09:47:00.003Z</published><updated>2011-03-04T10:09:02.446Z</updated><title type='text'>Sincronizar VE e GMaps</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://geomatica.comoj.com/google_ve.html"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 242px;" src="http://3.bp.blogspot.com/-H8vGsnhGx1s/TXC2KkUeT7I/AAAAAAAAADM/nLSUhiwCTKY/s400/Clipboard01.jpg" alt="" id="BLOGGER_PHOTO_ID_5580160230976540594" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;Comparar as imagens do Virtual Earth e do Google Maps pode ser feito facilmente colocando ambos os mapas lado a lado e utilizando os eventos "onchangeview" e "moveend", respectivamente.&lt;br /&gt;&lt;br /&gt;Quando um dos mapas é reposicionado, acontecerá exactamente o mesmo ao outro.&lt;br /&gt;&lt;br /&gt;Clicar na imagem ou seguir o link.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://geomatica.comoj.com/google_ve.html"&gt;http://geomatica.comoj.com/google_ve.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Assim é possível, de forma expedita, sincronizar o VE e o GMaps.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4194726798732643561-5422166042292063412?l=geodivagar.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='text/html' href='http://geodivagar.blogspot.com/2011/03/sincronizar-ve-e-gmaps.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4194726798732643561/posts/default/5422166042292063412'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4194726798732643561/posts/default/5422166042292063412'/><link rel='alternate' type='text/html' href='http://geodivagar.blogspot.com/2011/03/sincronizar-ve-e-gmaps.html' title='Sincronizar VE e GMaps'/><author><name>Luís Tavares</name><uri>http://www.blogger.com/profile/15564364674180846843</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/-H8vGsnhGx1s/TXC2KkUeT7I/AAAAAAAAADM/nLSUhiwCTKY/s72-c/Clipboard01.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4194726798732643561.post-3226258503913389529</id><published>2010-10-23T18:54:00.002+01:00</published><updated>2010-10-23T19:23:01.329+01:00</updated><title type='text'>Mais cache</title><content type='html'>&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;div style="text-align: justify;"&gt;No &lt;span style="font-style: italic;"&gt;post&lt;/span&gt; anterior intitulado &lt;a style="font-style: italic;" href="http://geodivagar.blogspot.com/2010/10/cache.html"&gt;cache&lt;/a&gt; ficou por referir o projecto &lt;a href="http://mapproxy.org/"&gt;MapProxy&lt;/a&gt; (erro lastimável da minha parte). Tratando-se também de um projecto da família Python, a provocação final continua a valer.&lt;br /&gt;&lt;br /&gt;Sobre o MapProxy ver &lt;a href="http://2010.foss4g.org/presentations_show.php?id=3498"&gt;"TileCache,GeowebCache and MapProxy - a technical and usability comparison"&lt;/a&gt;, apresentação do FOSS4G 2010.&lt;br /&gt;&lt;br /&gt;Fica também a referência ao &lt;a href="http://code.google.com/p/tileseeder/"&gt;TileSeeder&lt;/a&gt;, interface gráfico o qual pode ajudar bastante na pré-geração de &lt;span style="font-style: italic;"&gt;tiles&lt;/span&gt;. Ver também a apresentação do FOSS4G 2010, &lt;a href="http://2010.foss4g.org/presentations_show.php?id=3450"&gt;"&lt;strong style="font-weight: normal;"&gt;TILESEEDER; A NEW TILE MANAGEMENT TOOL"&lt;/strong&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Bom fds&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4194726798732643561-3226258503913389529?l=geodivagar.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='text/html' href='http://geodivagar.blogspot.com/2010/10/mais-cache.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4194726798732643561/posts/default/3226258503913389529'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4194726798732643561/posts/default/3226258503913389529'/><link rel='alternate' type='text/html' href='http://geodivagar.blogspot.com/2010/10/mais-cache.html' title='Mais cache'/><author><name>Luís Tavares</name><uri>http://www.blogger.com/profile/15564364674180846843</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4194726798732643561.post-3246154096370044689</id><published>2010-10-20T15:00:00.004+01:00</published><updated>2010-10-20T15:19:25.486+01:00</updated><title type='text'>GIS Cloud no Blogger com iFrame</title><content type='html'>&lt;div style="text-align: justify;"&gt;A integração do &lt;a href="http://www.giscloud.com/"&gt;GIS Cloud&lt;/a&gt; num &lt;span style="font-style: italic;"&gt;blog &lt;span style="font-style: italic;"&gt;&lt;span style="font-style: italic;"&gt;&lt;span style="font-style: italic;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt; &lt;/span&gt;(Blogger neste caso) é tão simples como inserir um &lt;a href="http://www.w3schools.com/TAGS/tag_iframe.asp"&gt;&lt;span style="font-style: italic;"&gt;iFrame&lt;/span&gt;&lt;/a&gt; no corpo da mensagem. São ainda disponibilizadas outras formas de integração nomeadamente GIS Cloud API (Javascript), Google Maps (Javascript), Google Maps (Adobe Flash) e OpenLayers.&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;iframe src="http://www.giscloud.com/embed/?map=2348&amp;amp;bound=-104351.703958969,-109259.20312,-74916.7413410311,-96379.47656&amp;amp;toolbar=true&amp;amp;layerlist=true" width="800" frameborder="0" height="600"&gt;&lt;/iframe&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4194726798732643561-3246154096370044689?l=geodivagar.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='text/html' href='http://geodivagar.blogspot.com/2010/10/gis-cloud-no-blogger-com-iframe.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4194726798732643561/posts/default/3246154096370044689'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4194726798732643561/posts/default/3246154096370044689'/><link rel='alternate' type='text/html' href='http://geodivagar.blogspot.com/2010/10/gis-cloud-no-blogger-com-iframe.html' title='GIS Cloud no Blogger com iFrame'/><author><name>Luís Tavares</name><uri>http://www.blogger.com/profile/15564364674180846843</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4194726798732643561.post-7990362551974087290</id><published>2010-10-12T00:08:00.006+01:00</published><updated>2010-10-19T01:10:42.216+01:00</updated><title type='text'>cache</title><content type='html'>&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;Deixando de parte o &lt;a href="http://tilecache.org/"&gt;TileCache&lt;/a&gt; e o &lt;a href="http://geowebcache.org/trac"&gt;GeoWebCache&lt;/a&gt;, dois clássicos consagrados no que diz respeito à &lt;span style="font-style: italic;"&gt;cache&lt;/span&gt; de &lt;span style="font-style: italic;"&gt;tiles&lt;/span&gt; resultantes de pedidos WMS, fica a referência a alguns projectos os quais jogam, ou tentam jogar, no mesmo campeonato.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://code.google.com/p/jtilecache/"&gt;JTileCache&lt;/a&gt; - Mencionado apenas por razões históricas, implementa a proposta &lt;a href="http://wiki.osgeo.org/wiki/WMS_Tile_Caching"&gt;WMS-C&lt;/a&gt; (como de resto os restantes projectos referidos) tendo sido escrito integralmente em JAVA. É o antepassado directo do GeoWebCache.&lt;br /&gt;&lt;br /&gt;Por esta altura, e mesmo antes, era também frequente tentar correr o TileCache sobre &lt;a href="http://www.jython.org/"&gt;Jython&lt;/a&gt;. A este propósito ver &lt;a href="http://crschmidt.net/blog/archives/340/jython-tilecachefeatureserver-it-just-works/"&gt;Jython + TileCache/FeatureServer: It just Works&lt;/a&gt; do &lt;a href="http://crschmidt.net/"&gt;Christopher Schmidt&lt;/a&gt; ou &lt;a href="http://www.resc.rdg.ac.uk/twiki/bin/view/Resc/TileCacheAsJavaServlet"&gt;Adapting TileCache to work as a java servlet&lt;/a&gt; do &lt;a href="http://www.resc.rdg.ac.uk/twiki/bin/view/Main/JonBlower"&gt;Jon Blower&lt;/a&gt;, estando este igualmente por trás do&lt;span style="text-decoration: underline;"&gt; &lt;/span&gt;&lt;a href="http://code.google.com/p/gae-wms/"&gt;gae-wms&lt;/a&gt;.&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;a href="http://code.google.com/p/spatialcache/"&gt;SpatialCache&lt;/a&gt; - Escrito também em Python, pode-se considerar o irmão mais novo do TileCache. Pode ser utilizado como mecanismo de cache para fins genéricos.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://code.google.com/p/piri/"&gt;PIRI&lt;/a&gt; - Este é particularmente interessante. Uma implementação de TileCache para &lt;a href="http://code.google.com/intl/pt-PT/appengine/"&gt;App Engine&lt;/a&gt;. Comigo não funciona mas ainda não desisti.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://geocache.codeplex.com/"&gt;geoCache&lt;/a&gt; - Para quem procura uma abordagem .NET (neste caso 3.5) esta é a solução, sendo escrita em C#. Resta dizer que teve por base, em grande parte, a migração de código do TileCache.&lt;br /&gt;&lt;br /&gt;Desta pequena enumeração nota-se um certo ascendente da família TileCache/Python. Alguma explicação?&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4194726798732643561-7990362551974087290?l=geodivagar.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='text/html' href='http://geodivagar.blogspot.com/2010/10/cache.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4194726798732643561/posts/default/7990362551974087290'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4194726798732643561/posts/default/7990362551974087290'/><link rel='alternate' type='text/html' href='http://geodivagar.blogspot.com/2010/10/cache.html' title='cache'/><author><name>Luís Tavares</name><uri>http://www.blogger.com/profile/15564364674180846843</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4194726798732643561.post-3855417803080424527</id><published>2010-10-02T16:47:00.005+01:00</published><updated>2010-10-02T17:26:23.601+01:00</updated><title type='text'>Transformação de coordenadas, programaticamente</title><content type='html'>&lt;div style="text-align: justify;"&gt;&lt;div style="text-align: justify;"&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;Quem queira utilizar programaticamente o conversor de coordenadas disponível &lt;a href="http://geomatica.no.sapo.pt/proj4js.html"&gt;aqui&lt;/a&gt;, pode sempre fazer algo do género:&lt;br /&gt;&lt;br /&gt;&lt;pre class="brush: js" true=""&gt;&lt;br /&gt;&lt;script src="http://geomatica.no.sapo.pt/lib/proj4js.js"&gt;&lt;/script&gt;&lt;br /&gt;&lt;script src="http://geomatica.no.sapo.pt/lib/projCode/tmerc.js"&gt;&lt;/script&gt;&lt;br /&gt;&lt;script type="text/javascript"&gt;&lt;br /&gt; function init() { &lt;br /&gt;  var x = 23.0;&lt;br /&gt;  var y = 32.0;&lt;br /&gt;  var p = new Proj4js.Point(x,y);&lt;br /&gt;  Proj4js.transform(new Proj4js.Proj('EPSG:20791'), new Proj4js.Proj('EPSG:20790'), p);&lt;br /&gt;  alert(p.x + " " + p.y);&lt;br /&gt; }&lt;br /&gt;&lt;/script&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Exemplo funcional disponível &lt;a href="http://geomatica.no.sapo.pt/transform.html"&gt;aqui&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;De notar a necessidade de incluir não só o &lt;span style="font-style: italic;"&gt;script proj4js.js&lt;/span&gt; mas também o &lt;span style="font-style: italic;"&gt;tmerc.js&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;Para os sistemas de coordenadas suportados ver a listagem do &lt;a href="http://geomatica.no.sapo.pt/proj4js.html"&gt;conversor&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;A utilização no &lt;a href="http://openlayers.org/"&gt;OpenLayers&lt;/a&gt; aplicada a &lt;span style="font-style: italic;"&gt;features&lt;/span&gt; é possível através da classe &lt;a href="http://dev.openlayers.org/releases/OpenLayers-2.10/doc/apidocs/files/OpenLayers/Projection-js.html"&gt;OpenLayers.Projection&lt;/a&gt;, mas isso é outra história.&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4194726798732643561-3855417803080424527?l=geodivagar.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='text/html' href='http://geodivagar.blogspot.com/2010/10/transformacao-de-coordenadas.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4194726798732643561/posts/default/3855417803080424527'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4194726798732643561/posts/default/3855417803080424527'/><link rel='alternate' type='text/html' href='http://geodivagar.blogspot.com/2010/10/transformacao-de-coordenadas.html' title='Transformação de coordenadas, programaticamente'/><author><name>Luís Tavares</name><uri>http://www.blogger.com/profile/15564364674180846843</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4194726798732643561.post-7100803397214099313</id><published>2010-09-25T19:25:00.004+01:00</published><updated>2010-09-25T20:10:12.468+01:00</updated><title type='text'>Códigos EPSG revisitados</title><content type='html'>&lt;div style="text-align: justify;"&gt;&lt;br /&gt;Visto que, desde a última vez que este assunto foi abordado &lt;a href="http://geodivagar.blogspot.com/2009/11/codigos-epsg-utilizados-em-portugal.html"&gt;aqui&lt;/a&gt; no blog, terem surgido algumas alterações nos códigos &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;EPSG&lt;/span&gt; relativos a Portugal, nomeadamente no que diz respeito aos identificadores das regiões insulares (a questão &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;insofismável&lt;/span&gt; do &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;ITRF&lt;/span&gt;93, importantíssima para quem faz a distinção relativamente ao &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_3"&gt;WGS&lt;/span&gt;84) bem como o &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_4"&gt;Datum&lt;/span&gt; 73/ &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_5"&gt;Hayford&lt;/span&gt;-Gauss (o 27492 foi promovido a 27493) para não falar do &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_6"&gt;ETRS&lt;/span&gt;89 (esse lobisomem que se confunde também com o &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_7"&gt;WGS&lt;/span&gt;84, e que aparece agora em 4 sabores distintos), volta-se a publicar a lista actualizada à data do presente &lt;span style="font-style: italic;" class="blsp-spelling-error" id="SPELLING_ERROR_8"&gt;post&lt;/span&gt;:&lt;br /&gt;&lt;br /&gt;&lt;p class="style1" style="background-color: rgb(1, 118, 187); color: rgb(255, 255, 255); width: 85%;"&gt;Códigos &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_9"&gt;EPSG&lt;/span&gt; dos sistemas de referência  utilizados em Portugal&lt;br /&gt;&lt;/p&gt;   &lt;p class="style2"&gt;&lt;strong&gt;Portugal Continental - Sistemas  Globais&lt;/strong&gt;&lt;/p&gt;   &lt;ul class="style5"&gt;&lt;li&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_10"&gt;EPSG&lt;/span&gt;: 4936 (&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_11"&gt;ETRS&lt;/span&gt;89/ Coordenadas Geocêntricas) &lt;/li&gt;&lt;li&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_12"&gt;EPSG&lt;/span&gt;: 4937 (&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_13"&gt;ETRS&lt;/span&gt;89/ Coordenadas Geográficas 3D) &lt;/li&gt;&lt;li&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_14"&gt;EPSG&lt;/span&gt;: 4258 (&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_15"&gt;ETRS&lt;/span&gt;89/ Coordenadas Geográficas 2D) &lt;/li&gt;&lt;li&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_16"&gt;EPSG&lt;/span&gt;: 3763  (&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_17"&gt;ETRS&lt;/span&gt;89/ PT-&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_18"&gt;TM&lt;/span&gt;06) &lt;/li&gt;&lt;/ul&gt;   &lt;p class="style2"&gt;&lt;strong&gt;Portugal Continental - Sistemas  Locais&lt;/strong&gt;&lt;/p&gt;   &lt;ul class="style2"&gt;&lt;li class="style7"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_19"&gt;EPSG&lt;/span&gt;: 4274 (&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_20"&gt;Datum&lt;/span&gt; 73/ Coordenadas Geográficas 2D) &lt;/li&gt;&lt;li class="style7"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_21"&gt;EPSG&lt;/span&gt;: 27493  (&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_22"&gt;Datum&lt;/span&gt; 73/ &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_23"&gt;Hayford&lt;/span&gt;-Gauss) &lt;/li&gt;&lt;li class="style7"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_24"&gt;EPSG&lt;/span&gt;: 4207 (&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_25"&gt;Datum&lt;/span&gt; Lisboa/ Coordenadas Geográficas 2D) &lt;/li&gt;&lt;li class="style7"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_26"&gt;EPSG&lt;/span&gt;: 5018 (&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_27"&gt;Datum&lt;/span&gt; Lisboa/ &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_28"&gt;Hayford&lt;/span&gt;-Gauss)&lt;/li&gt;&lt;li class="style7"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_29"&gt;EPSG&lt;/span&gt;: 20790 (&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_30"&gt;Datum&lt;/span&gt; Lisboa/ &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_31"&gt;Hayford&lt;/span&gt;-Gauss com falsa origem - Coordenadas  Militares)&lt;/li&gt;&lt;/ul&gt;   &lt;p class="style2"&gt;&lt;strong&gt;Arquipélagos dos Açores e da  Madeira - Sistemas Globais&lt;/strong&gt;&lt;/p&gt;   &lt;ul class="style2"&gt;&lt;li class="style7"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_32"&gt;EPSG&lt;/span&gt;: 5011 (&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_33"&gt;ITRF&lt;/span&gt;93/ Coordenadas Geocêntricas)&lt;/li&gt;&lt;li class="style7"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_34"&gt;EPSG&lt;/span&gt;: 5012 (&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_35"&gt;ITRF&lt;/span&gt;93/ Coordenadas Geográficas 3D)&lt;/li&gt;&lt;li class="style7"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_36"&gt;EPSG&lt;/span&gt;: 5013 (&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_37"&gt;ITRF&lt;/span&gt;93/ Coordenadas Geográficas 2D)&lt;/li&gt;&lt;li class="style7"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_38"&gt;EPSG&lt;/span&gt;: 5014 (&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_39"&gt;ITRF&lt;/span&gt;93/ &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_40"&gt;PTRA&lt;/span&gt;08 - &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_41"&gt;UTM&lt;/span&gt; zona 25N) - Grupo Ocidental do Arquipélago  dos Açores&lt;/li&gt;&lt;li class="style7"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_42"&gt;EPSG&lt;/span&gt;: 5015 (&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_43"&gt;ITRF&lt;/span&gt;93/ &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_44"&gt;PTRA&lt;/span&gt;08 - &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_45"&gt;UTM&lt;/span&gt; zona 26N) - Grupo Central e Oriental do  Arquipélago dos Açores&lt;/li&gt;&lt;li class="style7"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_46"&gt;EPSG&lt;/span&gt;: 5016 (&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_47"&gt;ITRF&lt;/span&gt;93/ &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_48"&gt;PTRA&lt;/span&gt;08 - &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_49"&gt;UTM&lt;/span&gt; zona 28N) – Madeira, Porto Santo, Desertas  e Selvagens&lt;/li&gt;&lt;/ul&gt;   &lt;p class="style2"&gt;&lt;strong&gt;Arquipélagos dos Açores e da  Madeira - Sistemas Locais&lt;/strong&gt;&lt;/p&gt;   &lt;ul&gt;&lt;li class="style5"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_50"&gt;EPSG&lt;/span&gt;: 2188 (&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_51"&gt;Datum&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_52"&gt;Observatório&lt;/span&gt; - Flores (Grupo Ocidental do Arquipélago dos  Açores) / &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_53"&gt;UTM&lt;/span&gt; zona 25N) &lt;/li&gt;&lt;li class="style5"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_54"&gt;EPSG&lt;/span&gt;: 2189 (&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_55"&gt;Datum&lt;/span&gt; Base &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_56"&gt;SW&lt;/span&gt; - Graciosa (Grupo Central do Arquipélago dos  Açores) / &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_57"&gt;UTM&lt;/span&gt; zona 26N &lt;/li&gt;&lt;li class="style5"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_58"&gt;EPSG&lt;/span&gt;: 2190 (&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_59"&gt;Datum&lt;/span&gt; S. &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_60"&gt;Braz&lt;/span&gt; - S. Miguel (Grupo Oriental do Arquipélago dos  Açores) / &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_61"&gt;UTM&lt;/span&gt; zona 26N) &lt;/li&gt;&lt;li class="style5"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_62"&gt;EPSG&lt;/span&gt;: 2942 (&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_63"&gt;Datum&lt;/span&gt; Base SE - Porto Santo (Madeira) / &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_64"&gt;UTM&lt;/span&gt; zona 28N)&lt;/li&gt;&lt;/ul&gt;Mais uma vez a fonte é o site do &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_65"&gt;IGP&lt;/span&gt; (&lt;a href="http://mapas.igeo.pt/" title="m@pas on-line"&gt;m@pas &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_66"&gt;online&lt;/span&gt;&lt;/a&gt;) ao qual recorremos &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_67"&gt;amiúde&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4194726798732643561-7100803397214099313?l=geodivagar.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='text/html' href='http://geodivagar.blogspot.com/2010/09/codigos-epsg-revisitados.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4194726798732643561/posts/default/7100803397214099313'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4194726798732643561/posts/default/7100803397214099313'/><link rel='alternate' type='text/html' href='http://geodivagar.blogspot.com/2010/09/codigos-epsg-revisitados.html' title='Códigos EPSG revisitados'/><author><name>Luís Tavares</name><uri>http://www.blogger.com/profile/15564364674180846843</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4194726798732643561.post-2769138948703407735</id><published>2010-09-16T02:05:00.005+01:00</published><updated>2010-09-16T03:00:19.612+01:00</updated><title type='text'>cp4 georeferenciados (centróides)</title><content type='html'>&lt;div style="text-align: justify;"&gt;&lt;br /&gt;A forma mais comum de código postal, o de 4 dígitos, vulgo &lt;span style="font-style: italic;"&gt;cp4&lt;/span&gt;, baseia-se na ideia de  ter o território coberto por polígonos não sobrepostos sendo a cada um desses polígonos atribuído um identificador único: o &lt;span style="font-style: italic;"&gt;cp4&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;No caso de Portugal Continental temos 463 polígonos podendo ser calculado para cada um deles o respectivo centróide. Na posse dessa informação é possível publicar um &lt;span style="font-style: italic;"&gt;webservice&lt;/span&gt; que devolva  as coordenadas do centróide para um determinado &lt;span style="font-style: italic;"&gt;cp4&lt;/span&gt;. Sendo assim,&lt;br /&gt;&lt;br /&gt;&lt;p&gt;  --&gt; Saber as coordenadas em WGS84 do centróide relativo ao polígono de um determinado código postal de 4 dígitos.    &lt;/p&gt;  &lt;b&gt;http://codigospostais.appspot.com/cp4?&lt;/b&gt; Devolve a latitude e a longitude para um determinado código postal de 4 dígitos.  &lt;p&gt;Exemplo: &lt;a href="http://codigospostais.appspot.com/cp4?codigo=2675"&gt;http://codigospostais.appspot.com/cp4?codigo=2675&lt;/a&gt; &lt;/p&gt;&lt;p&gt;Parâmetros: &lt;b&gt;codigo&lt;/b&gt; código postal de 4 dígitos&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Parâmetro opcional: &lt;span style="font-weight: bold;"&gt;callback&lt;/span&gt; para a chamada de uma função em javascript&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Resposta: JSON&lt;/p&gt;&lt;br /&gt;Nota: serviço só disponível para códigos de Portugal Continental.&lt;br /&gt;&lt;br /&gt;Este e outro serviços em &lt;a href="http://geodivagar.appspot.com/"&gt;http://geodivagar.appspot.com&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4194726798732643561-2769138948703407735?l=geodivagar.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='text/html' href='http://geodivagar.blogspot.com/2010/09/cp4-georeferenciados-centroides.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4194726798732643561/posts/default/2769138948703407735'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4194726798732643561/posts/default/2769138948703407735'/><link rel='alternate' type='text/html' href='http://geodivagar.blogspot.com/2010/09/cp4-georeferenciados-centroides.html' title='cp4 georeferenciados (centróides)'/><author><name>Luís Tavares</name><uri>http://www.blogger.com/profile/15564364674180846843</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4194726798732643561.post-2563025927947979722</id><published>2010-07-21T02:24:00.004+01:00</published><updated>2010-07-21T03:35:36.315+01:00</updated><title type='text'>Consumindo json web services com Python (exemplos)</title><content type='html'>&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;Há já bastante tempo que o &lt;a href="http://json.org/"&gt;JSON&lt;/a&gt; (JavaScript Object Notation) deixou de ser um exclusivo do javascript. Actualmente, a maioria das linguagens de programação têm suporte a este formato, seja nativamente, seja através de uma biblioteca qualquer. Isto torna-o ideal para intercâmbio de dados.&lt;br /&gt;&lt;br /&gt;O Python tem suporte nativo a JSON, na sua &lt;a href="http://docs.python.org/library/json.html"&gt;Standard Library&lt;/a&gt;, desde a versão 2.6. Para versões anteriores será necessário utilizar bibliotecas externas, sendo a mais conhecida a &lt;a href="http://pypi.python.org/pypi/simplejson/"&gt;simplejson.&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Como os exemplos seguintes foram testados em Python 2.5, também irei utilizar a &lt;a href="http://pypi.python.org/pypi/simplejson/"&gt;simplejson&lt;/a&gt; a qual terá que estar instalada no sistema. Note-se que o Python 2.5 é a versão suportada pelo &lt;a href="http://code.google.com/intl/pt-PT/appengine/"&gt;Google App Engine&lt;/a&gt;, logo quem também quiser desenvolver nesta plataforma e em Python terá que utilizar esta versão, por enquanto.&lt;br /&gt;&lt;br /&gt;Exemplos:&lt;br /&gt;&lt;br /&gt;- Transformar coordenadas geográficas WGS84 em PTTM06.&lt;br /&gt;&lt;br /&gt;&lt;pre class="brush: js"&gt;&lt;br /&gt;import simplejson&lt;br /&gt;import urllib&lt;br /&gt;&lt;br /&gt;lat = 38&lt;br /&gt;&lt;br /&gt;lng = -8&lt;br /&gt;&lt;br /&gt;url = 'http://geodivagar.appspot.com/geogauss?lat=' + str(lat) + '&amp;amp;lng=' + str(lng)&lt;br /&gt;&lt;br /&gt;response = simplejson.load(urllib.urlopen(url))&lt;br /&gt;&lt;br /&gt;x = response['x']&lt;br /&gt;y = response['y']&lt;br /&gt;&lt;br /&gt;print x , y&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;- Na posse de coordenadas PTTM06 podemos calcular a altitude SRTM do ponto em metros.&lt;br /&gt;&lt;br /&gt;&lt;pre class="brush: js"&gt;&lt;br /&gt;url = 'http://geo-pt.appspot.com/srtmPT?x=' + str(x) + '&amp;amp;y=' + str(y) + '&amp;amp;interpol=bilinear'&lt;br /&gt;&lt;br /&gt;response = simplejson.load(urllib.urlopen(url))&lt;br /&gt;&lt;br /&gt;altitude = response['altitude']&lt;br /&gt;&lt;br /&gt;print altitude&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;- Para as coordenadas geográficas podemos também calcular a ondulação do geóide em metros.&lt;br /&gt;&lt;br /&gt;&lt;pre class="brush: js"&gt;&lt;br /&gt;url = 'http://geodivagar.appspot.com/geoidePT?lat=' + str(lat) + '&amp;amp;lng=' + str(lng) + '&amp;amp;interpol=bilinear'&lt;br /&gt;&lt;br /&gt;response = simplejson.load(urllib.urlopen(url))&lt;br /&gt;&lt;br /&gt;n = response['N']&lt;br /&gt;&lt;br /&gt;print n&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Serviços disponíveis em &lt;a href="http://geodivagar.appspot.com/"&gt;http://geodivagar.appspot.com/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;(Continua brevemente)&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4194726798732643561-2563025927947979722?l=geodivagar.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='text/html' href='http://geodivagar.blogspot.com/2010/07/consumindo-json-web-services-com-python.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4194726798732643561/posts/default/2563025927947979722'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4194726798732643561/posts/default/2563025927947979722'/><link rel='alternate' type='text/html' href='http://geodivagar.blogspot.com/2010/07/consumindo-json-web-services-com-python.html' title='Consumindo json web services com Python (exemplos)'/><author><name>Luís Tavares</name><uri>http://www.blogger.com/profile/15564364674180846843</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4194726798732643561.post-7282084786417918905</id><published>2010-06-14T00:33:00.003+01:00</published><updated>2010-06-14T00:55:02.498+01:00</updated><title type='text'>Web Service: Altitudes SRTM para Portugal Continental</title><content type='html'>&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;div style="text-align: justify;"&gt;Mais um serviço:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;http://geo-pt.appspot.com/srtmPT?&lt;/span&gt; Devolve a altitude SRTM em metros para um determinado ponto em coordenadas x,y PT-TM06. Suporta 2 métodos de interpolação: vizinho mais próximo e bilinear.&lt;br /&gt;&lt;br /&gt;- Exemplo: &lt;a href="http://geo-pt.appspot.com/srtmPT?x=117006.46&amp;amp;y=-11722.69&amp;amp;interpol=bilinear"&gt;http://geo-pt.appspot.com/srtmPT?x=117006.46&amp;amp;y=-11722.69&amp;amp;interpol=bilinear&lt;/a&gt;&lt;br /&gt;- Exemplo: &lt;a href="http://geo-pt.appspot.com/srtmPT?x=117006.46&amp;amp;y=-11722.69&amp;amp;interpol=nn"&gt;http://geo-pt.appspot.com/srtmPT?x=117006.46&amp;amp;y=-11722.69&amp;amp;interpol=nn&lt;/a&gt;&lt;br /&gt;- Parâmetros: &lt;b&gt;x&lt;/b&gt; &lt;b&gt;y&lt;/b&gt; coordenadas PT-TM06,  &lt;b&gt;interpol&lt;/b&gt; interpolador "nn" (nearest neighbor) ou "bilinear"&lt;br /&gt;- Parâmetro opcional: &lt;span style="font-weight: bold;"&gt;callback&lt;/span&gt; para a chamada de uma função em javascript&lt;br /&gt;- Resposta: JSON&lt;br /&gt;&lt;br /&gt;Nota: na implementação deste serviço foi utilizado o modelo digital de terreno SRTM disponibilizado para &lt;a href="http://www.fc.up.pt/pessoas/jagoncal/srtm/"&gt;download&lt;/a&gt; pelo Professor José Alberto Gonçalves. Fica a referência para quem quiser comparar os resultados do serviço.&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4194726798732643561-7282084786417918905?l=geodivagar.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='text/html' href='http://geodivagar.blogspot.com/2010/06/web-service-altitudes-srtm.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4194726798732643561/posts/default/7282084786417918905'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4194726798732643561/posts/default/7282084786417918905'/><link rel='alternate' type='text/html' href='http://geodivagar.blogspot.com/2010/06/web-service-altitudes-srtm.html' title='Web Service: Altitudes SRTM para Portugal Continental'/><author><name>Luís Tavares</name><uri>http://www.blogger.com/profile/15564364674180846843</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4194726798732643561.post-8973862761448486412</id><published>2010-06-11T02:12:00.007+01:00</published><updated>2010-09-05T19:54:31.628+01:00</updated><title type='text'>Web Service: Códigos Postais de 7 dígitos</title><content type='html'>&lt;div style="text-align: justify;"&gt;&lt;br /&gt;Saber a Localidade, Artéria, Local/Zona e Troço para um determinado código postal de 7 dígitos.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;http://codigospostais.appspot.com/cp7?&lt;/b&gt; Devolve, quando existem, a Localidade, Artéria, Local/Zona e Troço para um determinado código postal de 7 dígitos.  &lt;/div&gt;&lt;ul style="text-align: justify;"&gt;&lt;li&gt;Exemplo: &lt;a href="http://codigospostais.appspot.com/cp7?codigo=2620182"&gt;http://codigospostais.appspot.com/cp7?codigo=2620182&lt;/a&gt; &lt;/li&gt;&lt;li&gt;Parâmetro: &lt;b&gt;codigo&lt;/b&gt; - código postal de 7 dígitos &lt;/li&gt;&lt;li&gt;Parâmetro opcional: &lt;span style="font-weight: bold;"&gt;callback&lt;/span&gt; para a chamada de uma função em javascript&lt;/li&gt;&lt;li&gt;Resposta: JSON&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4194726798732643561-8973862761448486412?l=geodivagar.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='text/html' href='http://geodivagar.blogspot.com/2010/06/web-service-codigos-postais-de-7.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4194726798732643561/posts/default/8973862761448486412'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4194726798732643561/posts/default/8973862761448486412'/><link rel='alternate' type='text/html' href='http://geodivagar.blogspot.com/2010/06/web-service-codigos-postais-de-7.html' title='Web Service: Códigos Postais de 7 dígitos'/><author><name>Luís Tavares</name><uri>http://www.blogger.com/profile/15564364674180846843</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4194726798732643561.post-8300704038820814523</id><published>2010-06-01T01:49:00.004+01:00</published><updated>2010-06-01T03:31:42.594+01:00</updated><title type='text'>Web Service: GeodPT08</title><content type='html'>&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;O Instituto Geográfico Português (IGP) disponibiliza para &lt;a href="http://www.igeo.pt/produtos/geodesia/GeodPT08.htm"&gt;&lt;span style="font-style: italic;"&gt;download&lt;/span&gt;&lt;/a&gt;, o GeodPT08, um modelo do geóide para Portugal Continental elaborado pela &lt;a href="http://enggeografica.fc.ul.pt/"&gt;FCUL&lt;/a&gt; em parceria com o IGP.&lt;br /&gt;&lt;br /&gt;Este modelo é disponibilizado sob a forma de um ficheiro ASCII, o qual descreve uma grelha regular encontrando-se organizada no ficheiro segundo um esquema XYZ.&lt;br /&gt;&lt;br /&gt;Do facto deste modelo requerer um programa com ferramentas de interpolação para ser  utilizado, surgiu a ideia de publicar um &lt;span style="font-style: italic;"&gt;web service&lt;/span&gt; que aceita pedidos GET e que devolve uma resposta em JSON. Assim foi feito.&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;p style="text-align: justify;"&gt;   &lt;b&gt;/geoidePT?&lt;/b&gt; Devolve a ondulação do geóide (N) (GRS80) para uma determinada posição em WGS84/ETRS89 (lng e lat) &lt;/p&gt;&lt;p style="text-align: justify;"&gt;- Exemplo: &lt;a target="_blank" href="http://geodivagar.appspot.com/geoidePT?lng=-10.0&amp;amp;lat=36.525&amp;amp;interpol=bilinear"&gt;http://geodivagar.appspot.com/geoidePT?lng=-10.0&amp;amp;lat=36.525&amp;amp;interpol=bilinear&lt;/a&gt;&lt;/p&gt;&lt;p style="text-align: justify;"&gt;- Exemplo: &lt;a target="_blank" href="http://geodivagar.appspot.com/geoidePT?lng=-10.0125&amp;amp;lat=42.2375&amp;amp;interpol=nn"&gt;http://geodivagar.appspot.com/geoidePT?lng=-10.0125&amp;amp;lat=42.2375&amp;amp;interpol=nn&lt;/a&gt;&lt;/p&gt;&lt;p style="text-align: justify;"&gt;- Parâmetro: &lt;b&gt;lat&lt;/b&gt; latitude em graus decimais&lt;/p&gt;&lt;p style="text-align: justify;"&gt;- Parâmetro: &lt;b&gt;lng&lt;/b&gt; longitude em graus decimais&lt;/p&gt;&lt;p style="text-align: justify;"&gt;- Parâmetro: &lt;b&gt;interpol&lt;/b&gt;. Valores possíveis: "bilinear" ou "nn" (nearest neighbor = vizinho mais próximo). Algoritmo a utilizar na interpolação na grelha.&lt;/p&gt;&lt;p style="text-align: justify;"&gt;- Resposta: JSON&lt;/p&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;Para mais considerações sobre o modelo consultar a página de&lt;a href="http://www.igeo.pt/produtos/geodesia/GeodPT08.htm"&gt;&lt;span style="font-style: italic;"&gt; download&lt;/span&gt;&lt;/a&gt; e também:&lt;br /&gt;&lt;a href="http://www.igeo.pt/produtos/Geodesia/GeodPT08/GeodPT08.pdf"&gt;http://www.igeo.pt/produtos/Geodesia/GeodPT08/GeodPT08.pdf&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Nota: assumiu-se que o espaçamento da grelha (0º,0250) é suficientemente pequeno para que possamos admitir que a ondulação do geóide tem um comportamento linear. Para a implementação do interpolador bilinear, ver por exemplo:&lt;br /&gt;&lt;a href="http://www.geocomputation.org/1999/082/gc_082.htm"&gt;http://www.geocomputation.org/1999/082/gc_082.htm&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Este e outros web services disponíveis em &lt;a href="http://geodivagar.appspot.com/"&gt;http://geodivagar.appspot.com/&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4194726798732643561-8300704038820814523?l=geodivagar.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='text/html' href='http://geodivagar.blogspot.com/2010/06/web-service-geodpt08.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4194726798732643561/posts/default/8300704038820814523'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4194726798732643561/posts/default/8300704038820814523'/><link rel='alternate' type='text/html' href='http://geodivagar.blogspot.com/2010/06/web-service-geodpt08.html' title='Web Service: GeodPT08'/><author><name>Luís Tavares</name><uri>http://www.blogger.com/profile/15564364674180846843</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4194726798732643561.post-1711628571872175172</id><published>2010-05-28T19:25:00.007+01:00</published><updated>2010-05-28T20:01:29.704+01:00</updated><title type='text'>NavPT foi à vida</title><content type='html'>&lt;div style="text-align: justify;"&gt;Pois é. Segundo o próprio &lt;a href="http://www.navpt.com/"&gt;site&lt;/a&gt;:&lt;br /&gt;&lt;br /&gt;"Por &lt;u&gt;razões de ordem superior e completamente alheias à equipa do Projecto NavPT&lt;/u&gt;, somos obrigados a terminar o projecto."&lt;br /&gt;&lt;br /&gt;Enquanto não soubermos mais pormenores acerca das "razões de ordem superior", resta-nos lembrar que se tratava de um projecto que permitia visualizar trajectórias, em tempo real, relativas à RIV (Região de Informação de Voo) de Lisboa. Permitia também, entre outras coisas, ter acesso às comunicações entre as aeronaves e a torre de controlo.&lt;br /&gt;&lt;br /&gt;Ou seja, nada a que não possamos ter acesso através de sites internacionais, o que poderá levantar alguma suspeição sobre a legitimidade das alegadas "razões de ordem superior". Para mais considerações sobre este e outros aspectos, consultar por exemplo este &lt;a href="http://abertoatedemadrugada.com/2010/05/navpt-forcado-aterrar.html"&gt;blog&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4194726798732643561-1711628571872175172?l=geodivagar.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='text/html' href='http://geodivagar.blogspot.com/2010/05/navpt-foi-vida.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4194726798732643561/posts/default/1711628571872175172'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4194726798732643561/posts/default/1711628571872175172'/><link rel='alternate' type='text/html' href='http://geodivagar.blogspot.com/2010/05/navpt-foi-vida.html' title='NavPT foi à vida'/><author><name>Luís Tavares</name><uri>http://www.blogger.com/profile/15564364674180846843</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4194726798732643561.post-1094895060672244139</id><published>2010-05-26T12:49:00.003+01:00</published><updated>2010-05-26T13:00:28.303+01:00</updated><title type='text'>Tile Map Service</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://geomatica.comoj.com/"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 195px;" src="http://4.bp.blogspot.com/_oQKk6Kr6kiA/S_0LFuja3AI/AAAAAAAAAC0/r-3v-GhXLq8/s400/srt.jpg" alt="" id="BLOGGER_PHOTO_ID_5475544914976234498" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;Depois de termos os nossos &lt;span style="font-style: italic;"&gt;tiles&lt;/span&gt; gerados, precisamos mesmo de um servidor de mapas? Acho que não (&lt;a href="http://geomatica.comoj.com/"&gt;proof of concept&lt;/a&gt;).&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4194726798732643561-1094895060672244139?l=geodivagar.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='text/html' href='http://geodivagar.blogspot.com/2010/05/tile-map-service.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4194726798732643561/posts/default/1094895060672244139'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4194726798732643561/posts/default/1094895060672244139'/><link rel='alternate' type='text/html' href='http://geodivagar.blogspot.com/2010/05/tile-map-service.html' title='Tile Map Service'/><author><name>Luís Tavares</name><uri>http://www.blogger.com/profile/15564364674180846843</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_oQKk6Kr6kiA/S_0LFuja3AI/AAAAAAAAAC0/r-3v-GhXLq8/s72-c/srt.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4194726798732643561.post-953534182010117003</id><published>2010-05-22T01:01:00.005+01:00</published><updated>2010-05-22T01:34:22.518+01:00</updated><title type='text'>Proj4js - transformação de coordenadas</title><content type='html'>&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;Relativamente à aplicação para transformação pontual de coordenadas que disponibilizo &lt;a href="http://geomatica.no.sapo.pt/proj4js.html"&gt;aqui&lt;/a&gt;, desde o ano passado, foram feitas algumas (pequenas) alterações:&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;ul style="text-align: justify;"&gt;&lt;li&gt;Actualização dos parâmetros de Bursa-Wolf, sendo agora utilizados os parâmetros mais recentes do &lt;a href="http://www.igeo.pt/produtos/Geodesia/Inf_tecnica/parametros_transformacao/parametros_Portugal.htm"&gt;IGP&lt;/a&gt;;&lt;/li&gt;&lt;li&gt;Formatação das coordenadas geográficas (graus decimais) de saída para 8 casas decimais;&lt;/li&gt;&lt;li&gt;Formatação das coordenadas cartográficas (metros) de saída para 2 casas decimais.&lt;/li&gt;&lt;/ul&gt;&lt;div style="text-align: justify;"&gt;Da &lt;a href="http://www.igeo.pt/produtos/Geodesia/Inf_tecnica/parametros_transformacao/parametros_Portugal.htm"&gt;página&lt;/a&gt; do IGP referida constam também pontos transformados os quais poderão servir para comparar resultados.&lt;br /&gt;&lt;br /&gt;Link:&lt;br /&gt;&lt;a href="http://geomatica.no.sapo.pt/proj4js.html"&gt;Transformação de coordenadas com Proj4js (implementação em javascript da biblioteca PROJ)&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4194726798732643561-953534182010117003?l=geodivagar.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='text/html' href='http://geodivagar.blogspot.com/2010/05/proj4js-transformacao-de-coordenadas.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4194726798732643561/posts/default/953534182010117003'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4194726798732643561/posts/default/953534182010117003'/><link rel='alternate' type='text/html' href='http://geodivagar.blogspot.com/2010/05/proj4js-transformacao-de-coordenadas.html' title='Proj4js - transformação de coordenadas'/><author><name>Luís Tavares</name><uri>http://www.blogger.com/profile/15564364674180846843</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4194726798732643561.post-499449693371519478</id><published>2010-05-13T21:20:00.004+01:00</published><updated>2010-05-13T21:42:41.958+01:00</updated><title type='text'>Serviços: parâmetro opcional</title><content type='html'>&lt;div style="text-align: justify;"&gt;&lt;br /&gt;Todos os serviços disponibilizados em &lt;a href="http://geodivagar.appspot.com/"&gt;geodivagar.appspot.com&lt;/a&gt; admitem um parâmetro opcional &lt;b&gt;callback&lt;/b&gt; para a chamada de uma função em javascript. Pode ser utilizado, por exemplo, o &lt;a href="http://coderepos.org/share/browser/lang/javascript/JSONScriptRequest/"&gt;JSONScriptRequest&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Para isso, incluir o &lt;span style="font-style: italic;"&gt;script&lt;/span&gt; na página.&lt;br /&gt;&lt;pre class="brush: jscript"&gt;&lt;br /&gt;&lt;script type="text/javascript" src="jsr_class.js"&gt;&lt;/script&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Definir o &lt;span style="font-weight: bold;"&gt;callback&lt;/span&gt; na chamada ao serviço:&lt;br /&gt;&lt;br /&gt;&lt;pre class="brush: jscript"&gt;&lt;br /&gt;   function onMapClick(overlay,latlng) {&lt;br /&gt;&lt;br /&gt;  if (latlng) {&lt;br /&gt;   coords=latlng;&lt;br /&gt;   request = 'http://geodivagar.appspot.com/geogauss?lat=' + latlng.y + '&amp;amp;lng=' + latlng.x + '&amp;amp;callback=onComplete';   &lt;br /&gt;   aObj = new JSONscriptRequest(request);&lt;br /&gt;   aObj.buildScriptTag();&lt;br /&gt;   aObj.addScriptTag();   &lt;br /&gt;       }&lt;br /&gt;   }&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Definir a função que recebe o objecto JSON, por exemplo:&lt;br /&gt;&lt;pre class="brush: jscript"&gt;&lt;br /&gt; function onComplete(jData) {&lt;br /&gt;   var myHtml = 'X: ' + jData.x.toFixed(2)+ '&lt;br /&gt; Y: ' + jData.y.toFixed(2);&lt;br /&gt;           map.openInfoWindow(coords, myHtml);&lt;br /&gt; }&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Demo&lt;/span&gt; completa disponível &lt;a href="http://geomatica.no.sapo.pt/"&gt;aqui&lt;/a&gt;. &lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4194726798732643561-499449693371519478?l=geodivagar.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='text/html' href='http://geodivagar.blogspot.com/2010/05/servicos-parametro-opcional.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4194726798732643561/posts/default/499449693371519478'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4194726798732643561/posts/default/499449693371519478'/><link rel='alternate' type='text/html' href='http://geodivagar.blogspot.com/2010/05/servicos-parametro-opcional.html' title='Serviços: parâmetro opcional'/><author><name>Luís Tavares</name><uri>http://www.blogger.com/profile/15564364674180846843</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4194726798732643561.post-6204526548362876507</id><published>2010-05-12T01:21:00.003+01:00</published><updated>2010-05-12T01:26:26.625+01:00</updated><title type='text'>Dica simples e eficaz</title><content type='html'>Directamente do &lt;span style="font-style: italic;"&gt;blog&lt;/span&gt; do &lt;a href="http://darrencope.com/"&gt;Darren Cope&lt;/a&gt;:&lt;br /&gt;&lt;h2&gt;&lt;a href="http://darrencope.com/2010/05/07/merge-a-directory-of-shapefiles-using-ogr/" rel="bookmark" title="Merge A Directory of Shapefiles Using OGR"&gt;Merge A Directory of Shapefiles Using OGR&lt;/a&gt;&lt;/h2&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;mkdir merged&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt; for %f in (*.shp) do (&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt; if not exist merged\merged.shp (&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt; ogr2ogr -f “esri shapefile” merged\merged.shp %f) else (&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt; ogr2ogr -f “esri shapefile” -update -append merged\merged.shp %f -nln Merged )&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt; )&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4194726798732643561-6204526548362876507?l=geodivagar.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='text/html' href='http://geodivagar.blogspot.com/2010/05/dica-simples-e-eficaz.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4194726798732643561/posts/default/6204526548362876507'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4194726798732643561/posts/default/6204526548362876507'/><link rel='alternate' type='text/html' href='http://geodivagar.blogspot.com/2010/05/dica-simples-e-eficaz.html' title='Dica simples e eficaz'/><author><name>Luís Tavares</name><uri>http://www.blogger.com/profile/15564364674180846843</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4194726798732643561.post-2189007339763345600</id><published>2010-05-10T00:23:00.003+01:00</published><updated>2010-05-10T00:49:04.241+01:00</updated><title type='text'>Mais 2 serviços JSON</title><content type='html'>Mais 2 serviços com resposta JSON:&lt;br /&gt;&lt;br /&gt;&lt;b&gt;/wmsdetails&lt;/b&gt; Informação detalhada acerca de um determinado serviço WMS &lt;p&gt;Exemplo:&lt;/p&gt;&lt;p&gt;&lt;a href="http://geodivagar.appspot.com/wmsdetails?url=http://mapas.igeo.pt/wms/caop/continente"&gt;http://geodivagar.appspot.com/wmsdetails?url=http://mapas.igeo.pt/wms/caop/continente&lt;/a&gt; &lt;/p&gt;&lt;p&gt;Parâmetros: &lt;b&gt;url&lt;/b&gt; do serviço WMS&lt;/p&gt;&lt;p&gt;Resposta:&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;pre class="brush: jscript"&gt;&lt;br /&gt;{&lt;br /&gt;     layers: [&lt;br /&gt;          "Distritos",&lt;br /&gt;          "NUT3",&lt;br /&gt;          "NUT2",&lt;br /&gt;          "Freguesias",&lt;br /&gt;          "CAOP",&lt;br /&gt;          "Concelhos",&lt;br /&gt;     ],&lt;br /&gt;     operations: [&lt;br /&gt;          "GetCapabilities",&lt;br /&gt;          "GetMap",&lt;br /&gt;          "GetFeatureInfo",&lt;br /&gt;          "DescribeLayer",&lt;br /&gt;          "GetLegendGraphic",&lt;br /&gt;          "GetStyles",&lt;br /&gt;     ],&lt;br /&gt;     title: "Carta Administrativa Oficial de Portugal (CAOP - Continente) - Versão 6.0",&lt;br /&gt;     abstract: "Serviço de mapas WMS: Continente - Limites Administrativos Oficiais (Limites de País, Limites de NUT 2, Limites de NUT3, Limites de Distrito, Limites de Concelho e Limites de Freguesia) para o Continente e Ilhas. A esta informação está associada a toponímia, bem como outra informação descritiva como seja a área oficial de cada circunscrição administrativa.",&lt;br /&gt;     version: "1.1.1",&lt;br /&gt;     type: "OGC:WMS"&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;p&gt;&lt;b&gt;/layerdetails&lt;/b&gt; Informação detalhada acerca de uma determinada layer de um serviço WMS &lt;/p&gt;&lt;p&gt;Exemplo:&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://geodivagar.appspot.com/layerdetails?url=http://mapas.igeo.pt/wms/caop/continente&amp;amp;layer=Distritos"&gt;http://geodivagar.appspot.com/layerdetails?url=http://mapas.igeo.pt/wms/caop/continente&amp;amp;layer=Distritos&lt;/a&gt; &lt;/p&gt;&lt;p&gt;Parâmetros: &lt;b&gt;url&lt;/b&gt; do serviço WMS e &lt;b&gt;layer&lt;/b&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Resposta:&lt;br /&gt;&lt;/p&gt;&lt;div style="text-align: justify;"&gt;&lt;pre class="brush: jscript"&gt;&lt;br /&gt;{&lt;br /&gt;     boundingBoxWGS84: [&lt;br /&gt;         -10.1913,&lt;br /&gt;         36.8987,&lt;br /&gt;         -5.7141,&lt;br /&gt;         42.1887,&lt;br /&gt;     ],&lt;br /&gt;     styles: {&lt;br /&gt;           default: {&lt;br /&gt;                legend: http://mapas.igeo.pt/wms/caop/continente?version=1.1.1&amp;amp;service=WMS&amp;amp;request=GetLegendGraphic&amp;amp;layer=Distritos&amp;amp;format=image/png,&lt;br /&gt;                title: "default"&lt;br /&gt;           }&lt;br /&gt;     },&lt;br /&gt;     crsOptions: [&lt;br /&gt;          "EPSG:27492",&lt;br /&gt;          "EPSG:20790",&lt;br /&gt;          "EPSG:4326",&lt;br /&gt;          "EPSG:4258",&lt;br /&gt;          "EPSG:102160",&lt;br /&gt;          "EPSG:102161",&lt;br /&gt;          "EPSG:102164",&lt;br /&gt;          "EPSG:102165"&lt;br /&gt;     ],&lt;br /&gt;    title: "Distritos"&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;Foi utilizada a biblioteca &lt;a href="http://trac.gispython.org/lab/wiki/OwsLib"&gt;OwsLib&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Restantes serviços disponíveis em &lt;a href="http://geodivagar.appspot.com/"&gt;http://geodivagar.appspot.com/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4194726798732643561-2189007339763345600?l=geodivagar.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='text/html' href='http://geodivagar.blogspot.com/2010/05/mais-2-servicos-json.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4194726798732643561/posts/default/2189007339763345600'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4194726798732643561/posts/default/2189007339763345600'/><link rel='alternate' type='text/html' href='http://geodivagar.blogspot.com/2010/05/mais-2-servicos-json.html' title='Mais 2 serviços JSON'/><author><name>Luís Tavares</name><uri>http://www.blogger.com/profile/15564364674180846843</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4194726798732643561.post-8949346953643583493</id><published>2010-05-05T03:27:00.005+01:00</published><updated>2010-05-05T04:05:50.849+01:00</updated><title type='text'>Serviços no App Engine</title><content type='html'>&lt;div style="text-align: justify;"&gt;&lt;div style="text-align: justify;"&gt;Aproveitei o facto de ter criado conta no &lt;a href="http://code.google.com/intl/pt-PT/appengine/"&gt;Google App Engine&lt;/a&gt; para disponibilizar alguns serviços com parâmetros passados na URL e com resposta em &lt;a href="http://pt.wikipedia.org/wiki/JSON"&gt;JSON&lt;/a&gt; (quem quiser chamar &lt;a href="http://pt.wikipedia.org/wiki/REST"&gt;REST&lt;/a&gt; a isto, está à vontade).&lt;br /&gt;&lt;br /&gt;Os serviços são os seguintes (poucos por enquanto):&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: left;"&gt;&lt;b&gt;/geogauss&lt;/b&gt; Projecção directa de coordenadas geográficas ETRS89 em coordenadas cartográficas PTTM06 &lt;/div&gt;&lt;ul style="text-align: left;" class="details"&gt;&lt;p&gt;Exemplo: &lt;a href="http://geodivagar.appspot.com/geogauss?lat=38.01132704&amp;amp;lng=-7.87167688"&gt;http://geodivagar.appspot.com/geogauss?lat=38.01132704&amp;amp;lng=-7.87167688&lt;/a&gt; &lt;/p&gt;&lt;p&gt;Parâmetros: "lat"=latitude "lng"=longitude&lt;/p&gt;&lt;p&gt;Resposta: JSON&lt;/p&gt;&lt;/ul&gt;&lt;div style="text-align: left;"&gt;&lt;b&gt;/gaussgeo&lt;/b&gt; Projecção inversa de coordenadas cartográficas PTTM06 em coordenadas geográficas ETRS89 &lt;/div&gt;&lt;ul style="text-align: left;" class="details"&gt;&lt;p&gt;Exemplo: &lt;a href="http://geodivagar.appspot.com/gaussgeo?x=22958.6550821&amp;amp;y=-183907.735462"&gt;http://geodivagar.appspot.com/gaussgeo?x=22958.6550821&amp;amp;y=-183907.735462&lt;/a&gt; &lt;/p&gt;&lt;p&gt;Parâmetros: "x" "y"&lt;/p&gt;&lt;p&gt;Resposta: JSON&lt;/p&gt;&lt;/ul&gt;&lt;div style="text-align: left;"&gt;&lt;b&gt;/arcmer&lt;/b&gt; Comprimento de arco de meridiano (metros) sobre o elipsóide associado ao sistema WGS-84 entre duas latitudes &lt;/div&gt;&lt;ul style="text-align: left;" class="details"&gt;&lt;p&gt;Exemplo: &lt;a href="http://geodivagar.appspot.com/arcmer?lat1=38.0&amp;amp;lat2=39.0"&gt;http://geodivagar.appspot.com/arcmer?lat1=38.0&amp;amp;lat2=39.0&lt;/a&gt; &lt;/p&gt;&lt;p&gt;Parâmetros: "lat1"=latitude inicial  "lat2"=latitude final&lt;/p&gt;&lt;p&gt;Resposta: JSON&lt;/p&gt;&lt;/ul&gt;&lt;div style="text-align: left;"&gt;&lt;b&gt;/elevation&lt;/b&gt; Gera uma URL do GOOGLE CHART com o perfil de terreno entre dois pontos &lt;/div&gt;&lt;ul style="text-align: left;" class="details"&gt;&lt;p&gt;Example: &lt;a target="_blank" href="http://geodivagar.appspot.com/elevation?lat1=38.5&amp;amp;lat2=39.0&amp;amp;lng1=-8.0&amp;amp;lng2=-8.0"&gt;http://geodivagar.appspot.com/elevation?lat1=38.5&amp;amp;lat2=39.0&amp;amp;lng1=-8.0&amp;amp;lng2=-8.0&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Parâmetros: "lat1" e "lng1" coordenadas do ponto de partida, "lat2" e "lng2" coordenadas do ponto de chegada&lt;/p&gt;&lt;p&gt;Nota: a utilização deste serviço pressupôe a aceitação dos &lt;a target="_blank" href="http://code.google.com/intl/pt-PT/apis/maps/terms.html"&gt;Termos de Serviço&lt;/a&gt; da API do Google Maps  bem como dos &lt;a target="_blank" href="http://code.google.com/intl/pt-PT/apis/maps/terms.html"&gt;Termos &lt;/a&gt; das Google Chart Tools&lt;/p&gt;&lt;p&gt;Resposta: JSON&lt;/p&gt;&lt;/ul&gt;&lt;div style="text-align: left;"&gt;&lt;b&gt;/dms2decimal&lt;/b&gt;  Converte graus, minutos e segundos em graus decimais &lt;/div&gt;&lt;ul style="text-align: left;" class="details"&gt;&lt;p&gt;Exemplo: &lt;a target="_blank" href="http://geodivagar.appspot.com/dms2decimal?d=39&amp;amp;m=40&amp;amp;s=5.73"&gt;http://geodivagar.appspot.com/dms2decimal?d=39&amp;amp;m=40&amp;amp;s=5.73&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Parâmetros: "d"=graus "m"=minutos "s"=segundos&lt;/p&gt;&lt;p&gt;Resposta: JSON&lt;/p&gt;&lt;/ul&gt;&lt;div style="text-align: left;"&gt;&lt;b&gt;/decimal2dms&lt;/b&gt; Converte graus decimais em graus, minutos e segundos&lt;/div&gt;&lt;ul style="text-align: left;" class="details"&gt;&lt;p&gt;Exemplo: &lt;a target="_blank" href="http://geodivagar.appspot.com/decimal2dms?decimal=39.6682583333"&gt;http://geodivagar.appspot.com/decimal2dms?decimal=39.6682583333&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Parâmetro: "decimal"= graus decimais&lt;/p&gt;&lt;p&gt;Resposta: JSON&lt;/p&gt;&lt;/ul&gt;&lt;div style="text-align: left;"&gt;&lt;b&gt;/geoutil&lt;/b&gt; Faz parsing de coordenadas geográficas&lt;br /&gt;&lt;br /&gt;                 Exemplo 1: &lt;a target="_blank" href="http://geodivagar.appspot.com/geoutil?str=39%2040m%205.73s%20N%208%207m%2059s%20W"&gt;http://geodivagar.appspot.com/geoutil?str=39%2040m%205.73s%20N%208%207m%2059s%20W&lt;/a&gt;&lt;br /&gt;   &lt;br /&gt;        Exemplo 2: &lt;a target="_blank" href="http://geodivagar.appspot.com/geoutil?str=39.5%20N%209.0%20W"&gt;http://geodivagar.appspot.com/geoutil?str=39.5%20N%209.0%20W&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;                 Parâmetro: "str"= aceita strings como "39 40m 5.73s N 8 7m 59s W" ou "39.5 N 9.0 W"&lt;br /&gt;&lt;br /&gt;                 Resposta: JSON&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;Ainda não implementei serviços para processamento em &lt;span style="font-style: italic;"&gt;batch &lt;/span&gt;mas poderei vir a fazê-lo no futuro. Adicionalmente, poderei vir a disponibilizar mais serviços dependendo da disponibilidade de tempo.&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4194726798732643561-8949346953643583493?l=geodivagar.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='text/html' href='http://geodivagar.blogspot.com/2010/05/servicos-no-app-engine.html#comment-form' title='2 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4194726798732643561/posts/default/8949346953643583493'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4194726798732643561/posts/default/8949346953643583493'/><link rel='alternate' type='text/html' href='http://geodivagar.blogspot.com/2010/05/servicos-no-app-engine.html' title='Serviços no App Engine'/><author><name>Luís Tavares</name><uri>http://www.blogger.com/profile/15564364674180846843</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4194726798732643561.post-3081476233183781668</id><published>2010-05-04T22:52:00.003+01:00</published><updated>2010-05-04T23:06:35.191+01:00</updated><title type='text'>Na sequência do 10º aniversário do fim do SA</title><content type='html'>&lt;div style="text-align: justify;"&gt;&lt;div style="text-align: justify;"&gt;Na sequência do 10º aniversário do fim do &lt;a href="http://en.wikipedia.org/wiki/Global_Positioning_System#Selective_availability"&gt;Acesso Selectivo (SA)&lt;/a&gt; o qual ocorreu dia 1 de Maio, encontrei uma &lt;a href="http://gauss.gge.unb.ca/gpsworld/innovation.html"&gt;página &lt;/a&gt;com as primeiras edições da coluna &lt;em&gt;Innovation&lt;span style="font-style: italic;"&gt;&lt;/span&gt;&lt;/em&gt; da revista &lt;a href="http://www.gpsworld.com/"&gt;GPS World&lt;/a&gt;:&lt;br /&gt;&lt;/div&gt;&lt;em&gt;&lt;span style="font-style: italic;"&gt;&lt;/span&gt;&lt;/em&gt;&lt;/div&gt;&lt;em&gt;&lt;/em&gt;&lt;em&gt;&lt;span style="font-style: italic;"&gt;&lt;span style="font-style: italic;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/em&gt;&lt;div style="text-align: left;"&gt;&lt;ul&gt;&lt;li&gt; &lt;a href="http://gauss.gge.unb.ca/gpsworld/EarlyInnovationColumns/Innov.1990.01-02.pdf"&gt;GPS: A multipurpose system&lt;/a&gt; by D. Wells and A. Kleusberg&lt;br /&gt;January/February 1990, Vol. 1, No. 1, pp. 60-63.&lt;/li&gt;&lt;br /&gt;&lt;li&gt; &lt;a href="http://gauss.gge.unb.ca/gpsworld/EarlyInnovationColumns/Innov.1990.03-04.pdf"&gt;The limitations of GPS&lt;/a&gt; by A. Kleusberg and R.B. Langley&lt;br /&gt;March/April 1990, Vol. 1, No. 2, pp. 50-52.&lt;/li&gt;&lt;br /&gt;&lt;li&gt; &lt;a href="http://gauss.gge.unb.ca/gpsworld/EarlyInnovationColumns/Innov.1990.05-06.pdf"&gt;Why is the GPS signal so complex?&lt;/a&gt; by R.B. Langley&lt;br /&gt;May/June 1990, Vol. 1, No. 3, pp. 56-59.&lt;/li&gt;&lt;br /&gt;&lt;li&gt; &lt;a href="http://gauss.gge.unb.ca/gpsworld/EarlyInnovationColumns/Innov.1990.07-08.pdf"&gt;Electronic charts and GPS&lt;/a&gt; by M.J. Casey and P. Kielland&lt;br /&gt;July/August 1990, Vol. 1, No. 4, pp. 56-59.&lt;/li&gt;&lt;br /&gt;&lt;li&gt; &lt;a href="http://gauss.gge.unb.ca/gpsworld/EarlyInnovationColumns/Innov.1990.09-10.pdf"&gt;The issue of selective availability&lt;/a&gt; by Y. Georgiadou and K.D. Doucet&lt;br /&gt;September/October 1990, Vol. 1, No. 5, pp. 53-56.&lt;/li&gt;&lt;br /&gt;&lt;li&gt; &lt;a href="http://gauss.gge.unb.ca/gpsworld/EarlyInnovationColumns/Innov.1990.11-12.pdf"&gt;Comparing GPS and GLONASS&lt;/a&gt; by A. Kleusberg&lt;br /&gt;November/December 1990, Vol. 1, No. 6, pp. 52-54.&lt;/li&gt;&lt;br /&gt;&lt;li&gt; &lt;a href="http://gauss.gge.unb.ca/gpsworld/EarlyInnovationColumns/Innov.1991.01.pdf"&gt;The GPS receiver: An introduction&lt;/a&gt; by R.B. Langley&lt;br /&gt;January 1991, Vol. 2, No. 1, pp. 50-53.&lt;/li&gt;&lt;br /&gt;&lt;li&gt; &lt;a href="http://gauss.gge.unb.ca/gpsworld/EarlyInnovationColumns/Innov.1991.02.pdf"&gt;Precise, real-time dredge positioning&lt;/a&gt; by S.R. DeLoach&lt;br /&gt;February 1991, Vol. 2, No. 2, pp. 43-45.&lt;/li&gt;&lt;br /&gt;&lt;li&gt; &lt;a href="http://gauss.gge.unb.ca/gpsworld/EarlyInnovationColumns/Innov.1991.03.pdf"&gt;The orbits of GPS satellites&lt;/a&gt; by R.B. Langley&lt;br /&gt;March 1991, Vol. 2, No. 3, pp. 50-53.&lt;/li&gt;&lt;br /&gt;&lt;li&gt; &lt;a href="http://gauss.gge.unb.ca/gpsworld/EarlyInnovationColumns/Innov.1991.04.pdf"&gt;Ionospheric effects on GPS&lt;/a&gt; by J.A. Klobuchar&lt;br /&gt;April 1991, Vol. 2, No. 4, pp. 48-51.&lt;/li&gt;&lt;br /&gt;&lt;li&gt; &lt;a href="http://gauss.gge.unb.ca/gpsworld/EarlyInnovationColumns/Innov.1991.05.pdf"&gt;GPS vehicle location and navigation&lt;/a&gt; by E.J. Krakiwsky&lt;br /&gt;May 1991, Vol. 2, No. 5, pp. 50-53.&lt;/li&gt;&lt;br /&gt;&lt;li&gt; &lt;a href="http://gauss.gge.unb.ca/gpsworld/EarlyInnovationColumns/Innov.1991.06.pdf"&gt;Continuous monitoring of crustal deformation&lt;/a&gt; by Y. Bock&lt;br /&gt;June 1991, Vol. 2, No. 6, pp. 40-47.&lt;/li&gt;&lt;br /&gt;&lt;li&gt; &lt;a href="http://gauss.gge.unb.ca/gpsworld/EarlyInnovationColumns/Innov.1991.07-08.pdf"&gt;The mathematics of GPS&lt;/a&gt; by R.B. Langley&lt;br /&gt;July/August 1991, Vol. 2, No. 7, pp. 45-50.&lt;/li&gt;&lt;br /&gt;&lt;li&gt; &lt;a href="http://gauss.gge.unb.ca/gpsworld/EarlyInnovationColumns/Innov.1991.09.pdf"&gt;GPS in civil aviation&lt;/a&gt; by K.D. McDonald&lt;br /&gt;September 1991, Vol. 2, No. 8, pp. 52-59.&lt;/li&gt;&lt;br /&gt;&lt;li&gt; &lt;a href="http://gauss.gge.unb.ca/gpsworld/EarlyInnovationColumns/Innov.1991.10.pdf"&gt;GPS – satellites of opportunity for ionospheric monitoring&lt;/a&gt; by D. Coco&lt;br /&gt;October 1991, Vol. 2, No. 9, pp. 47-50.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;em&gt;&lt;span style="font-style: italic;"&gt;&lt;/span&gt;&lt;/em&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4194726798732643561-3081476233183781668?l=geodivagar.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='text/html' href='http://geodivagar.blogspot.com/2010/05/na-sequencia-do-10-aniversario-do-fim.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4194726798732643561/posts/default/3081476233183781668'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4194726798732643561/posts/default/3081476233183781668'/><link rel='alternate' type='text/html' href='http://geodivagar.blogspot.com/2010/05/na-sequencia-do-10-aniversario-do-fim.html' title='Na sequência do 10º aniversário do fim do SA'/><author><name>Luís Tavares</name><uri>http://www.blogger.com/profile/15564364674180846843</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4194726798732643561.post-2451546332800787329</id><published>2010-05-04T00:15:00.004+01:00</published><updated>2010-05-04T01:05:17.258+01:00</updated><title type='text'>ECW Compressor</title><content type='html'>&lt;div style="text-align: justify;"&gt;A &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;ERMapper&lt;/span&gt; sempre &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;disponibilizou&lt;/span&gt; no seu site utilitários gratuitos nomeadamente a famosa ferramenta de compressão &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;ECW&lt;/span&gt; Compressor (com &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_3"&gt;GUI&lt;/span&gt; e tudo, mas também com o limite de 500 &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_4"&gt;MB&lt;/span&gt; por imagem). Depois da empresa ter sido adquirida pela &lt;a href="http://www.erdas.com/"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_5"&gt;ERDAS&lt;/span&gt;&lt;/a&gt; deixei de ver o compressor na secção de &lt;a style="font-style: italic;" href="http://www.erdas.com/Resources/Downloads.aspx"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_6"&gt;downloads&lt;/span&gt;&lt;/a&gt; no site desta última, apesar de lá constarem outros produtos herdados da &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_7"&gt;ERMapper&lt;/span&gt;, nomeadamente o visualizador gratuito &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_8"&gt;ER&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_9"&gt;Viewer&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;Assim, para quem não queira utilizar o binómio &lt;a href="http://www.gdal.org/frmt_ecw.html"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_10"&gt;GDAL&lt;/span&gt;/&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_11"&gt;ECW&lt;/span&gt;&lt;/a&gt; ou directamente o &lt;a href="http://www.erdas.com/tabid/84/currentid/1142/default.aspx"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_12"&gt;ECW&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_13"&gt;SDK&lt;/span&gt;&lt;/a&gt; (o qual neste momento também não se encontra disponível) &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_14"&gt;ou outra ferramenta que utilize o SDK, disponibilizo&lt;/span&gt; para &lt;a style="font-style: italic;" href="http://docs.google.com/leaf?id=0B3Es-NoryM-VN2IwOTZjZGUtNWY3MS00NzMyLWI5ODQtNzI1YmVlODI3Mzdi&amp;amp;hl=en"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_15"&gt;download&lt;/span&gt;&lt;/a&gt; a versão &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_16"&gt;ECW&lt;/span&gt; Compressor 2.6. Actualmente não tenho bem a certeza acerca do licenciamento desta ferramenta por isso a utilização da mesma fica ao critério de cada um (por outras palavras, não culpem o mensageiro).&lt;br /&gt;&lt;a href="http://docs.google.com/leaf?id=0B3Es-NoryM-VN2IwOTZjZGUtNWY3MS00NzMyLWI5ODQtNzI1YmVlODI3Mzdi&amp;amp;hl=en"&gt;&lt;br /&gt;LINK&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4194726798732643561-2451546332800787329?l=geodivagar.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='text/html' href='http://geodivagar.blogspot.com/2010/05/ecw-compressor.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4194726798732643561/posts/default/2451546332800787329'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4194726798732643561/posts/default/2451546332800787329'/><link rel='alternate' type='text/html' href='http://geodivagar.blogspot.com/2010/05/ecw-compressor.html' title='ECW Compressor'/><author><name>Luís Tavares</name><uri>http://www.blogger.com/profile/15564364674180846843</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4194726798732643561.post-4052989445552361136</id><published>2010-05-02T17:17:00.004+01:00</published><updated>2010-05-03T00:59:48.844+01:00</updated><title type='text'>Pesquisa por códigos postais de 7 dígitos</title><content type='html'>&lt;div style="text-align: justify;"&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;Normalmente, um código postal de 7 dígitos (&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;cp&lt;/span&gt;7) &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;corresponde&lt;/span&gt;&lt;/span&gt; a uma frente de quarteirão (pelo  menos em zonas urbanas). Consequentemente, a uma rua podem estar associados vários &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;cp&lt;/span&gt;7 tanto do mesmo lado da rua como do lado oposto. Por isso, a pesquisa por &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_3"&gt;cp&lt;/span&gt;7, na maioria dos casos, não chega para definir de forma inequívoca  uma morada sendo por isso necessário completar a informação com o respectivo número de policia. Em princípio o nome do arruamento estará subentendido no &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_4"&gt;cp&lt;/span&gt;7.&lt;br /&gt;&lt;br /&gt;No entanto, existe quem insista na pesquisa por códigos postais de 7 dígitos.&lt;br /&gt;&lt;br /&gt;Por exemplo, a pesquisa por códigos postais dos Mapas do Sapo deixa muito a desejar. Quem pesquisar por meia dúzia de códigos postais, &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;constata&lt;/span&gt; rapidamente que o que é feito é uma comparação&lt;span style="font-style: italic;"&gt; &lt;/span&gt;entre o código postal e a descrição de cada ponto de interesse (&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_5"&gt;POI&lt;/span&gt;) constante da base de dados. Uma abordagem &lt;span style="font-style: italic;"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_3"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_6"&gt;ad&lt;/span&gt;&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_4"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_7"&gt;hoc&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;, portanto. Se não houver nenhum &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_8"&gt;POI&lt;/span&gt; cuja morada contenha o código postal pretendido, o resultado será errático (por exemplo, pesquisando pelo código posta&lt;span style="visibility: visible;" id="main"&gt;&lt;span style="visibility: visible;" id="search"&gt;l do Fórum &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_9"&gt;Picoas&lt;/span&gt;, 1050-996&lt;/span&gt;&lt;/span&gt;, vamos obter um resultado próximo da Fundação &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_10"&gt;Calouste&lt;/span&gt; Gulbenkian, o que não tem nada a ver) .&lt;br /&gt;&lt;span style="display: block;" id="formatbar_Buttons"&gt;&lt;span class="on" style="display: block;" id="formatbar_JustifyFull" title="Justificar completamente" onmouseover="ButtonHoverOn(this);" onmouseout="ButtonHoverOff(this);" onmouseup="" onmousedown="CheckFormatting(event);FormatbarButton('richeditorframe', this, 13);ButtonMouseDown(this);"&gt;&lt;img src="http://www.blogger.com/img/blank.gif" alt="Justificar completamente" class="gl_align_full" border="0" /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;Abordagem mais interessante encontramos em &lt;a href="http://geocoder.pinguimcomfrio.net/"&gt;geocoder.pinguimcomfrio.net&lt;/a&gt;. O &lt;a href="http://www.pinguimcomfrio.net/?p=3#comments"&gt;autor&lt;/a&gt; construiu uma base de dados com os códigos postais e respectivos arruamentos. Quando se pesquisa por um determinado código postal, a respectiva morada (rua e localidade) constante da base de dados é enviada para o &lt;a href="http://code.google.com/intl/pt-PT/apis/maps/documentation/services.html#Geocoding"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_11"&gt;geocoder&lt;/span&gt; do Google&lt;/a&gt;. Com esta solução ao menos temos a garantia que o resultado se encontra na rua pretendida, o que já é muito bom.&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4194726798732643561-4052989445552361136?l=geodivagar.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='text/html' href='http://geodivagar.blogspot.com/2010/05/pesquisa-por-codigos-postais-de-7.html#comment-form' title='2 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4194726798732643561/posts/default/4052989445552361136'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4194726798732643561/posts/default/4052989445552361136'/><link rel='alternate' type='text/html' href='http://geodivagar.blogspot.com/2010/05/pesquisa-por-codigos-postais-de-7.html' title='Pesquisa por códigos postais de 7 dígitos'/><author><name>Luís Tavares</name><uri>http://www.blogger.com/profile/15564364674180846843</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4194726798732643561.post-6576808866092254855</id><published>2010-04-28T22:57:00.002+01:00</published><updated>2010-04-28T23:14:22.619+01:00</updated><title type='text'>JSON no browser (Firefox)</title><content type='html'>&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;Para quem queira visualizar documentos em &lt;a href="http://www.json.org/"&gt;JSON&lt;/a&gt; o ideal é utilizar a extensão &lt;a href="https://addons.mozilla.org/pt-PT/firefox/addon/10869"&gt;JSONView&lt;/a&gt; do Firefox. O documento será visualizado de forma semelhante a um documento XML, formatado, com os campos em destaque e podendo ser expandido. Sempre é melhor do que ter que fazer o &lt;span style="font-style: italic;"&gt;download&lt;/span&gt; do documento JSON e visualizá-lo num editor de texto, numa única linha.&lt;br /&gt;&lt;br /&gt;Para adicionar a última versão &lt;a href="https://addons.mozilla.org/pt-PT/firefox/addon/10869"&gt;JSONView 0.4&lt;/a&gt; clicar &lt;a href="https://addons.mozilla.org/pt-PT/firefox/downloads/latest/10869/addon-10869-latest.xpi?src=addondetail"&gt;aqui&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4194726798732643561-6576808866092254855?l=geodivagar.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='text/html' href='http://geodivagar.blogspot.com/2010/04/json-no-browser-firefox.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4194726798732643561/posts/default/6576808866092254855'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4194726798732643561/posts/default/6576808866092254855'/><link rel='alternate' type='text/html' href='http://geodivagar.blogspot.com/2010/04/json-no-browser-firefox.html' title='JSON no browser (Firefox)'/><author><name>Luís Tavares</name><uri>http://www.blogger.com/profile/15564364674180846843</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4194726798732643561.post-5756818658458327416</id><published>2010-04-27T23:01:00.007+01:00</published><updated>2010-04-28T01:01:47.831+01:00</updated><title type='text'>Marcadores como resposta de um serviço por bounding box</title><content type='html'>&lt;div style="text-align: justify;"&gt;Quando temos uma aplicação em Google Maps (ou OpenLayers, ou outra) e fazemos uma chamada a um serviço dando como parâmetros uma &lt;a href="http://en.wikipedia.org/wiki/Minimum_bounding_box"&gt;&lt;span style="font-style: italic;"&gt;bounding box&lt;/span&gt;&lt;/a&gt;, geralmente utilizamos o resultado para adicionar marcadores ao mapa (com ou sem informação associada) em que as coordenadas dos marcadores a adicionar fazem parte da resposta do serviço.&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;Se fizermos chamadas sucessivas a esse serviço, por exemplo na sequência de um evento "moveend" registado, teremos que garantir que não vamos adicionar ao mapa marcadores já existentes.&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;Assim, de forma a que não existam marcadores duplicados é necessário percorrer a resposta do serviço (ou uma cópia desta) e testar se já existe algum marcador sobre o mapa com as mesmas coordenadas. Isso pode ser feito recorrendo a uma função a qual recebe como parâmetro as coordenadas a testar:&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;pre class=&amp;quot;brush: jscript&amp;quot;&gt;&lt;br /&gt; function isOnTheMap(latlng) {&lt;br /&gt;  for (var i=0; i &lt; markers.length ; ++i) {&lt;br /&gt;   if ( markers[i].getLatLng().equals(latlng)) {&lt;br /&gt;    return true;&lt;br /&gt;   }   &lt;br /&gt;  }&lt;br /&gt;  return false;&lt;br /&gt; }&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family:monospace;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:monospace;"&gt;&lt;/span&gt;Outra questão consiste em garantir que os marcadores que já estavam sobre o mapa e que não façam parte da bounding box, sejam removidos do mapa. Ou seja, garantir que não existem marcadores adicionados ao mapa fora da &lt;a href="http://en.wikipedia.org/wiki/Viewport"&gt;&lt;span style="font-style: italic;"&gt;vieweport&lt;/span&gt;&lt;/a&gt;. Mais uma vez podemos recorrer a uma função:&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;pre class=&amp;quot;brush: jscript&amp;quot;&gt;&lt;br /&gt; function removeMarkers() {&lt;br /&gt;  var tmpMarkers = markers;&lt;br /&gt;  for (var i = 0; i &lt; tmpMarkers.length; ++i) {&lt;br /&gt;   var marker = tmpMarkers[i];&lt;br /&gt;   if (bounds.containsLatLng(marker.getLatLng())) {&lt;br /&gt;    continue;&lt;br /&gt;   }&lt;br /&gt;   map.removeOverlay(marker);&lt;br /&gt;   markers.splice(i,1); &lt;br /&gt;  } &lt;br /&gt; }&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Neste caso poderá também ser necessário garantir a remoção de eventuais eventos registados.&lt;br /&gt;&lt;br /&gt;Para que ambos exemplos resultem é ainda necessário que aquando da criação de cada marcador seja este adicionado a um &lt;span style="font-style: italic;"&gt;array&lt;/span&gt; que vá guardando os nossos marcadores:&lt;br /&gt;&lt;br /&gt;&lt;pre class=&amp;quot;brush: jscript&amp;quot;&gt;&lt;br /&gt;markers.push(marker);&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4194726798732643561-5756818658458327416?l=geodivagar.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='text/html' href='http://geodivagar.blogspot.com/2010/04/marcadores-como-resposta-de-um-servico.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4194726798732643561/posts/default/5756818658458327416'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4194726798732643561/posts/default/5756818658458327416'/><link rel='alternate' type='text/html' href='http://geodivagar.blogspot.com/2010/04/marcadores-como-resposta-de-um-servico.html' title='Marcadores como resposta de um serviço por bounding box'/><author><name>Luís Tavares</name><uri>http://www.blogger.com/profile/15564364674180846843</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4194726798732643561.post-2702965218034513499</id><published>2010-04-20T17:03:00.002+01:00</published><updated>2010-04-20T17:09:59.518+01:00</updated><title type='text'>O sermão do topógrafo</title><content type='html'>&lt;div style="text-align: justify;"&gt;Where 2.0 2010: &lt;a href="http://blog.cleverelephant.ca/2010/04/surveyors-sermon.html"&gt;Paul Ramsey&lt;/a&gt;, "Why your data sucks"&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;object width="640" height="385"&gt;&lt;param name="movie" value="http://www.youtube.com/v/IX8iQN04tOo&amp;amp;hl=pt_PT&amp;amp;fs=1&amp;amp;rel=0"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;embed src="http://www.youtube.com/v/IX8iQN04tOo&amp;amp;hl=pt_PT&amp;amp;fs=1&amp;amp;rel=0" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="640" height="385"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4194726798732643561-2702965218034513499?l=geodivagar.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='text/html' href='http://geodivagar.blogspot.com/2010/04/o-sermao-do-topografo.html#comment-form' title='2 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4194726798732643561/posts/default/2702965218034513499'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4194726798732643561/posts/default/2702965218034513499'/><link rel='alternate' type='text/html' href='http://geodivagar.blogspot.com/2010/04/o-sermao-do-topografo.html' title='O sermão do topógrafo'/><author><name>Luís Tavares</name><uri>http://www.blogger.com/profile/15564364674180846843</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4194726798732643561.post-6794737557668805748</id><published>2010-04-19T17:01:00.003+01:00</published><updated>2010-04-19T17:10:19.075+01:00</updated><title type='text'>Clip raster with polygon (GDAL)</title><content type='html'>&lt;pre&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-family:courier new;"&gt;&lt;br /&gt;#!/bin/bash&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;SHPFILE=$1&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;BASE=`basename $SHPFILE .shp`&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;EXTENT=`ogrinfo -so $SHPFILE $BASE | grep Extent \&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;| sed 's/Extent: //g' | sed 's/(//g' | sed 's/)//g' \&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;| sed 's/ - /, /g'`&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;EXTENT=`echo $EXTENT | awk -F ',' '{print $1 " " $4 " " $3 " " $2}'`&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;echo "Clipping to $EXTENT"&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;RASTERFILE=$2&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;gdal_translate -projwin $EXTENT -of GTiff $RASTERFILE /tmp/`basename $RASTERFILE .sid`_bbclip.tif&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;gdalwarp -co COMPRESS=DEFLATE -co TILED=YES -of GTiff \&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;-r lanczos -cutline $SHPFILE \&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;/tmp/`basename $RASTERFILE .sid`_bbclip.tif /tmp/`basename $RASTERFILE .sid`_shpclip.tif&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://linfiniti.com/2009/09/clipping-rasters-with-gdal-using-polygons/"&gt;&lt;span style=";font-family:times new roman;font-size:130%;"  &gt;Fonte&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4194726798732643561-6794737557668805748?l=geodivagar.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='text/html' href='http://geodivagar.blogspot.com/2010/04/clip-raster-with-polygon-gdal.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4194726798732643561/posts/default/6794737557668805748'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4194726798732643561/posts/default/6794737557668805748'/><link rel='alternate' type='text/html' href='http://geodivagar.blogspot.com/2010/04/clip-raster-with-polygon-gdal.html' title='Clip raster with polygon (GDAL)'/><author><name>Luís Tavares</name><uri>http://www.blogger.com/profile/15564364674180846843</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4194726798732643561.post-1074742041545102067</id><published>2010-04-18T23:00:00.002+01:00</published><updated>2010-04-18T23:40:08.013+01:00</updated><title type='text'>Geoservicios</title><content type='html'>&lt;div style="text-align: justify;"&gt;&lt;div style="text-align: justify;"&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;div style="text-align: justify;"&gt;O ICC (&lt;a href="http://www.icc.cat/"&gt;Institut Cartogràfico de Catalunya&lt;/a&gt;), numa atitude bastante pragmática, utiliza &lt;a href="http://www.lizardtech.com/products/exp/"&gt;LizardTech Express Server&lt;/a&gt; e...pronto. Sem entrar em considerações de ordem financeira, só posso dizer que estes &lt;a href="http://www.icc.cat/esl/Home-ICC/Inicio/Cartografia/Geoservicios"&gt;&lt;span style="font-style: italic;"&gt;Geoservicios&lt;/span&gt;&lt;/a&gt; são estremamente rápidos, veja-se por exemplo:&lt;a href="http://cygnus.icc.cat/of5m/" target="_blank"&gt; Ortofoto de Cataluña 1:5.000&lt;/a&gt; ou &lt;a href="http://cygnus.icc.cat/bt5m/" target="_blank"&gt;Base Topográfica 1:5.000&lt;/a&gt;. Também interessante é a quantidade de serviços &lt;span style="font-style: italic;"&gt;wms&lt;/span&gt; disponíveis. Ver em &lt;a style="font-style: italic;" href="http://www.icc.cat/esl/Home-ICC/Inicio/Cartografia/Geoservicios/Servicios-disponibles"&gt;Servicios disponibles&lt;/a&gt;. Na página da LizardTech encontra-se mais informação sobre este &lt;a href="http://www.lizardtech.com/products/exp/icc.php"&gt;&lt;span style="font-style: italic;"&gt;case study&lt;/span&gt;&lt;/a&gt;.&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4194726798732643561-1074742041545102067?l=geodivagar.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='text/html' href='http://geodivagar.blogspot.com/2010/04/geoservicios.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4194726798732643561/posts/default/1074742041545102067'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4194726798732643561/posts/default/1074742041545102067'/><link rel='alternate' type='text/html' href='http://geodivagar.blogspot.com/2010/04/geoservicios.html' title='Geoservicios'/><author><name>Luís Tavares</name><uri>http://www.blogger.com/profile/15564364674180846843</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4194726798732643561.post-161468146247735323</id><published>2010-04-13T14:36:00.003+01:00</published><updated>2010-04-13T16:08:56.305+01:00</updated><title type='text'>Cartographer.js</title><content type='html'>&lt;div style="text-align: justify;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://cartographer.visualmotive.com/img/ex_cluster.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 250px;" src="http://cartographer.visualmotive.com/img/ex_cluster.png" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://cartographer.visualmotive.com/img/ex_pies.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 200px;" src="http://cartographer.visualmotive.com/img/ex_pies.png" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://cartographer.visualmotive.com/img/ex_choropleth.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 250px;" src="http://cartographer.visualmotive.com/img/ex_choropleth.png" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;&lt;a href="http://cartographer.visualmotive.com/"&gt;Cartographer.js&lt;/a&gt; é uma pequena &lt;span style="font-style: italic;"&gt;lib&lt;/span&gt; em &lt;span style="font-style: italic;"&gt;javascript&lt;/span&gt; a qual permite adicionar &lt;span style="font-style: italic;"&gt;Pie-Charts&lt;/span&gt;, &lt;span style="font-style: italic;"&gt;Choropleth Maps&lt;/span&gt; e &lt;span style="font-style: italic;"&gt;Clusters&lt;/span&gt; ao &lt;span style="font-style: italic;"&gt;Google Maps.&lt;/span&gt; É portanto uma biblioteca para cartografia temática.&lt;br /&gt;&lt;br /&gt;Esta &lt;span style="font-style: italic;"&gt;lib&lt;/span&gt; vem já com a divisão estadual dos EUA, &lt;span style="font-style: italic;"&gt;hardcoded. &lt;/span&gt;Podemos sempre fazer o mesmo para os distritos de Portugal. Os concelhos poderão ser  excessivamente pesados para representar do lado do cliente. E as freguesias ainda mais.&lt;br /&gt;&lt;br /&gt;Pessoalmente, acho que faz mais sentido apresentar &lt;span style="font-style: italic;"&gt;Pie-Charts&lt;/span&gt; e &lt;span style="font-style: italic;"&gt;Choropleths&lt;/span&gt; (coropletos em Português) sobre mapas estáticos. Quem quer ver dados estatísticos geralmente não está interessado em ver o telhado das casinhas ou o nome das ruas. É uma questão de escala.&lt;br /&gt;&lt;br /&gt;Relativamente aos &lt;span style="font-style: italic;"&gt;Clusters&lt;/span&gt; prefiro utilizar o &lt;a href="http://googlemapsapi.martinpearman.co.uk/articles.php?cat_id=1"&gt;ClusterMarker&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;De qualquer forma fica a referência a este curioso projecto.&lt;br /&gt;&lt;br /&gt;O repositório encontra-se &lt;a href="http://code.google.com/p/cartographerjs/"&gt;aqui&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;img src="file:///C:/DOCUME%7E1/LUISTA%7E1.ACE/DEFINI%7E1/Temp/moz-screenshot.jpg" alt="" /&gt;&lt;img src="file:///C:/DOCUME%7E1/LUISTA%7E1.ACE/DEFINI%7E1/Temp/moz-screenshot-1.jpg" alt="" /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4194726798732643561-161468146247735323?l=geodivagar.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='text/html' href='http://geodivagar.blogspot.com/2010/04/cartographerjs.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4194726798732643561/posts/default/161468146247735323'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4194726798732643561/posts/default/161468146247735323'/><link rel='alternate' type='text/html' href='http://geodivagar.blogspot.com/2010/04/cartographerjs.html' title='Cartographer.js'/><author><name>Luís Tavares</name><uri>http://www.blogger.com/profile/15564364674180846843</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4194726798732643561.post-8299631822186194581</id><published>2010-04-09T03:32:00.008+01:00</published><updated>2010-04-09T20:38:31.467+01:00</updated><title type='text'>Ilhas mais próximas do Continente</title><content type='html'>&lt;div style="text-align: justify;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_oQKk6Kr6kiA/S76TE2a_MOI/AAAAAAAAACs/is5qoP5EXMU/s1600/cp4.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 250px;" src="http://3.bp.blogspot.com/_oQKk6Kr6kiA/S76TE2a_MOI/AAAAAAAAACs/is5qoP5EXMU/s400/cp4.JPG" alt="" id="BLOGGER_PHOTO_ID_5457961509957087458" border="0" /&gt;&lt;/a&gt;Após fazer o &lt;a href="http://www2.ctt.pt/feapl/jsp/postalcodesearch/public/postalcodesearch.jsf?tab=1"&gt;download&lt;/a&gt; da &lt;span style="font-style: italic;"&gt;shapefile&lt;/span&gt; referente aos códigos postais de 4 dígitos, no &lt;span style="font-style: italic;"&gt;site&lt;/span&gt; dos Correios, reparei que os Arquipélagos da Madeira e dos Açores estavam representados exageradamente próximos do Continente.&lt;br /&gt;&lt;br /&gt;O problema deve-se à arbitrariedade de tentar representar no sistema Hayford-Gauss Militar (Continente),  dados provenientes de &lt;span style="font-style: italic;"&gt;data&lt;/span&gt; geodésicos regionais.&lt;br /&gt;&lt;br /&gt;Como só estava interessado nos dados do Continente purguei a informação restante. No entanto, convinha que os Correios corrigissem este erro.&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4194726798732643561-8299631822186194581?l=geodivagar.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='text/html' href='http://geodivagar.blogspot.com/2010/04/ilhas-mais-proximas-do-continente.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4194726798732643561/posts/default/8299631822186194581'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4194726798732643561/posts/default/8299631822186194581'/><link rel='alternate' type='text/html' href='http://geodivagar.blogspot.com/2010/04/ilhas-mais-proximas-do-continente.html' title='Ilhas mais próximas do Continente'/><author><name>Luís Tavares</name><uri>http://www.blogger.com/profile/15564364674180846843</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_oQKk6Kr6kiA/S76TE2a_MOI/AAAAAAAAACs/is5qoP5EXMU/s72-c/cp4.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4194726798732643561.post-217227879004883237</id><published>2010-03-30T23:43:00.005+01:00</published><updated>2010-03-31T00:28:36.032+01:00</updated><title type='text'>Termo de Utilização: OpenLayers e Google Maps</title><content type='html'>Têm-me perguntado frequentemente o porquê da utilização da API do Google Maps preterindo a API do OpenLayers.&lt;br /&gt;&lt;br /&gt;A resposta é que sempre que pretendo utilizar dados de base do Google Maps (e pretendo muitas vezes), prefiro utilizar directamente a sua API que ir recorrer ao OpenLayers adicionando uma &lt;a href="http://dev.openlayers.org/apidocs/files/OpenLayers/Layer/Google-js.html"&gt;OpenLayers.Layer.Google &lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;Ou seja, quando utilizo OpenLayers e adiciono uma Layer de Google Maps, não deixo de estar sujeito aos Termos de Utilização da API do Google Maps. Isto parece-me trivial.&lt;br /&gt;&lt;br /&gt;De qualquer forma, as restrições de utilização da API do Google Maps não são nada de transcendente, basta ver em &lt;a href="http://code.google.com/intl/pt-PT/apis/maps/"&gt;http://code.google.com/intl/pt-PT/apis/maps/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;"The Maps API is a free service, available for any web site that is free  to consumers"&lt;br /&gt;&lt;br /&gt;"To use the Maps API on an intranet or in a non-publicly accessible  application,  please check out &lt;a href="http://code.google.com/apis/maps/documentation/premier/"&gt;Google  Maps API Premier&lt;/a&gt;"&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4194726798732643561-217227879004883237?l=geodivagar.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='text/html' href='http://geodivagar.blogspot.com/2010/03/termo-de-utilizacao-openlayers-e-google.html#comment-form' title='2 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4194726798732643561/posts/default/217227879004883237'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4194726798732643561/posts/default/217227879004883237'/><link rel='alternate' type='text/html' href='http://geodivagar.blogspot.com/2010/03/termo-de-utilizacao-openlayers-e-google.html' title='Termo de Utilização: OpenLayers e Google Maps'/><author><name>Luís Tavares</name><uri>http://www.blogger.com/profile/15564364674180846843</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4194726798732643561.post-2408355521826623123</id><published>2010-03-24T20:18:00.010Z</published><updated>2010-03-25T03:31:49.911Z</updated><title type='text'>Altitudes do Brasil</title><content type='html'>&lt;div style="text-align: justify;"&gt;Clicar no mapa para saber a altitude&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div id="map_canvas" style="width: 600px; height: 600px;"&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Altitudes em metros. Coordenadas Geográficas referentes ao sistema WGS84.&lt;br /&gt;Especificação dos dados:&lt;br /&gt;- Resolução dos dados: 30 * 30 metros.&lt;br /&gt;- Exactidão vertical: 20 metros (nível de confiança de 95%).&lt;br /&gt;- Exactidão horizontal: 30 metros (nível de confiança de 95%).&lt;br /&gt;&lt;br /&gt;Fonte dos dados: &lt;a href="http://www.blogger.com/www.geonames.org"&gt;Geonames&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4194726798732643561-2408355521826623123?l=geodivagar.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='text/html' href='http://geodivagar.blogspot.com/2010/03/altitudes-do-brasil.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4194726798732643561/posts/default/2408355521826623123'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4194726798732643561/posts/default/2408355521826623123'/><link rel='alternate' type='text/html' href='http://geodivagar.blogspot.com/2010/03/altitudes-do-brasil.html' title='Altitudes do Brasil'/><author><name>Luís Tavares</name><uri>http://www.blogger.com/profile/15564364674180846843</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4194726798732643561.post-4532075761354984502</id><published>2010-03-23T22:31:00.006Z</published><updated>2010-03-23T23:00:52.971Z</updated><title type='text'>Raster Query com a GDAL</title><content type='html'>&lt;div style="text-align: justify;"&gt;Problema: saber o valor do pixel de uma imagem georeferenciada para um determinado par de coordenadas e uma determinada banda.&lt;br /&gt;&lt;br /&gt;Solução utilizando &lt;a href="http://pypi.python.org/pypi/GDAL/"&gt;GDAL Python bindings&lt;/a&gt;:&lt;br /&gt;&lt;br /&gt;Nota: no código que se segue substituir &lt;span style="font-style: italic;"&gt;underscore&lt;/span&gt;(_) por espaço em branco.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;import struct&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;import gdal&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;from gdalconst import *&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;filename = "image.tif"&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;dataset = gdal.Open( filename, GA_ReadOnly )&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;def CellValue(dataset, band, x, y):&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;  _band = dataset.GetRasterBand(band)&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;_if (band.GetNoDataValue() == None):&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;    ___band.SetNoDataValue(-9999)&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;  _ndv = band.GetNoDataValue()&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;  _cols = band.XSize&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;_rows = band.YSize&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;  _geotransform = dataset.GetGeoTransform()&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;  _cellSizeX = geotransform[1]&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;  _cellSizeY = -1 * geotransform[5]&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;  _minx = geotransform[0]&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;  _maxy = geotransform[3]&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;  _maxx = minx + (cols * cellSizeX)&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;  _miny = maxy - (rows * cellSizeY)&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;  _print 'bbox(real-world coords):',minx,',',miny,',',maxx,',',maxy&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;  _if ((x &lt;&gt; maxx) or (y &lt;&gt; maxy)):&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;    ___print 'given point does not fall within grid'&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;    ___return ndv&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;  _xLoc = (x - minx) / cellSizeX&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;  _xLoc = int(xLoc)&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;  _yLoc = (maxy - y) / cellSizeY&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;  _yLoc = int(yLoc)&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;  _#print 'point (pixels): ',xLoc,',',yLoc&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;  _if ((xLoc &lt;&gt; cols - 0.5)):&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;    ___#print 'xcoordinate out of bounds'&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;    ___return ndv&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;  _if ((yLoc &lt;&gt; rows - 0.5)):&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;___#print 'ycoordinate out of bounds'&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;    ___return ndv&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;  _strRaster = band.ReadRaster(xLoc, yLoc, 1, 1, 1, 1, band.DataType)&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;  _sDT = gdal.GetDataTypeName(band.DataType)&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;  _if (sDT == 'Int16'):&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;    ___dblValue = struct.unpack('h', strRaster)&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;  _elif (sDT == 'Float32'):&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;    ___dblValue = struct.unpack('f', strRaster)&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;  _elif (sDT == 'Byte'):&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;    ___dblValue = struct.unpack('B', strRaster)&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;  _else:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;    ___print 'unrecognized DataType:', gdal.GetDataTypeName(band.DataType)&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;    ___return ndv&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;  _print sDT&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;  _return dblValue[0]&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Testar a função:&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;&lt;br /&gt;print CellValue(dataset, 1,  222960.0, 285040.0)&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Fonte: &lt;a href="http://n2.nabble.com/query-raster-values-by-xy-location-td2035736.html#a2035736"&gt;&lt;span style="font-style: italic;"&gt;thread&lt;/span&gt;&lt;/a&gt; da mailing-list gdal-dev.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4194726798732643561-4532075761354984502?l=geodivagar.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='text/html' href='http://geodivagar.blogspot.com/2010/03/raster-query-com-gdal.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4194726798732643561/posts/default/4532075761354984502'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4194726798732643561/posts/default/4532075761354984502'/><link rel='alternate' type='text/html' href='http://geodivagar.blogspot.com/2010/03/raster-query-com-gdal.html' title='Raster Query com a GDAL'/><author><name>Luís Tavares</name><uri>http://www.blogger.com/profile/15564364674180846843</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4194726798732643561.post-2376681697406661663</id><published>2010-03-23T20:06:00.004Z</published><updated>2010-03-23T20:36:03.996Z</updated><title type='text'>Layer de SQL Server 2008 no MapServer</title><content type='html'>&lt;div style="text-align: justify;"&gt;O MapServer tem a possibilidade de estabelecer conexão (em modo &lt;span style="font-style: italic;"&gt;read-only&lt;/span&gt;) com uma base de dados espacial residente em Microsoft SQL Server 2008.&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;No caso do MS4W começar por confirmar a existência do respectivo plugin:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;/ms4w/Apache/specialplugins/msplugin_mssql2008.dll&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;No &lt;span style="font-style: italic;"&gt;mapfile&lt;/span&gt;, na respectiva &lt;span style="font-style: italic;"&gt;layer&lt;/span&gt;, é necessário utilizar o parâmetro &lt;span style="font-style: italic;"&gt;CONNECTIONTYPE PLUGIN&lt;/span&gt; bem como o parâmetro &lt;span style="font-style: italic;"&gt;PLUGIN&lt;/span&gt; para definir a &lt;span style="font-style: italic;"&gt;PATH&lt;/span&gt; do mesmo.&lt;br /&gt;&lt;br /&gt;Utilizar o parâmetro CONNECTION para definir os parâmetros de ligação que permitem aceder ao SQL Server e o parâmetro DATA para especificar a tabela na qual residem os dados espaciais.&lt;br /&gt;&lt;pre  class="literal-block" style="font-family:courier new;"&gt;&lt;span style="font-size:85%;"&gt;LAYER&lt;br /&gt;...&lt;br /&gt;CONNECTIONTYPE PLUGIN&lt;br /&gt;PLUGIN "C:/ms4w/Apache/specialplugins/msplugin_mssql2008.dll"&lt;br /&gt;CONNECTION "server=localhost/sqlexpress;uid=dbusername;&lt;br /&gt;             pwd=dbpassword;database=Districts Database;&lt;br /&gt;               Integrated Security=false"&lt;br /&gt;DATA "the_geom from districts"&lt;br /&gt;TYPE POLYGON&lt;br /&gt;STATUS ON&lt;br /&gt;CLASS&lt;br /&gt;   ...&lt;br /&gt;END&lt;br /&gt;END&lt;br /&gt;&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4194726798732643561-2376681697406661663?l=geodivagar.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='text/html' href='http://geodivagar.blogspot.com/2010/03/layer-de-sql-server-2008-no-mapserver.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4194726798732643561/posts/default/2376681697406661663'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4194726798732643561/posts/default/2376681697406661663'/><link rel='alternate' type='text/html' href='http://geodivagar.blogspot.com/2010/03/layer-de-sql-server-2008-no-mapserver.html' title='Layer de SQL Server 2008 no MapServer'/><author><name>Luís Tavares</name><uri>http://www.blogger.com/profile/15564364674180846843</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4194726798732643561.post-536655693128659888</id><published>2010-03-02T19:48:00.008Z</published><updated>2010-03-02T20:45:45.446Z</updated><title type='text'>Curvas de nível no MapServer</title><content type='html'>&lt;div style="text-align: justify;"&gt;A representação de curvas de nível no &lt;a href="http://mapserver.org/"&gt;MapServer&lt;/a&gt; não oferece problemas de maior. Apenas duas questões requerem um cuidado especial:&lt;br /&gt;&lt;/div&gt;&lt;ul style="text-align: justify;"&gt;&lt;li&gt;diferenciação entre curvas de nível mestras e secundárias através de simbologia diferente;&lt;/li&gt;&lt;li&gt;colocação de índices (&lt;span style="font-style: italic;"&gt;labels&lt;/span&gt;) nas curvas de nível mestras.&lt;/li&gt;&lt;/ul&gt;&lt;div style="text-align: justify;"&gt;Consideremos uma representação de curvas de nível com uma equidistância de 25 metros. Segundo as boas práticas de representação cartográfica, as curvas mestras serão representadas de 100 em 100 metros. Assim, teremos 3 curvas secundárias entre cada 2 curvas mestras.&lt;br /&gt;&lt;br /&gt;No ficheiro de configuração do MapServer poderemos definir duas classes para a mesma &lt;span style="font-style: italic;"&gt;layer&lt;/span&gt; obtendo algo do género:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_oQKk6Kr6kiA/S414wD8xsjI/AAAAAAAAACM/tqhO6CLiH1E/s1600-h/curvas.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 274px; height: 400px;" src="http://1.bp.blogspot.com/_oQKk6Kr6kiA/S414wD8xsjI/AAAAAAAAACM/tqhO6CLiH1E/s400/curvas.JPG" alt="" id="BLOGGER_PHOTO_ID_5444140291650073138" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;img src="file:///C:/DOCUME%7E1/LUISTA%7E1.ACE/DEFINI%7E1/Temp/moz-screenshot.jpg" alt="" /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4194726798732643561-536655693128659888?l=geodivagar.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='text/html' href='http://geodivagar.blogspot.com/2010/03/curvas-de-nivel-no-mapserver.html#comment-form' title='2 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4194726798732643561/posts/default/536655693128659888'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4194726798732643561/posts/default/536655693128659888'/><link rel='alternate' type='text/html' href='http://geodivagar.blogspot.com/2010/03/curvas-de-nivel-no-mapserver.html' title='Curvas de nível no MapServer'/><author><name>Luís Tavares</name><uri>http://www.blogger.com/profile/15564364674180846843</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_oQKk6Kr6kiA/S414wD8xsjI/AAAAAAAAACM/tqhO6CLiH1E/s72-c/curvas.JPG' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4194726798732643561.post-6827785456886286751</id><published>2010-02-28T17:40:00.002Z</published><updated>2010-02-28T19:35:11.925Z</updated><title type='text'>MapServer em modo FastCGI</title><content type='html'>&lt;div style="text-align: justify;"&gt;&lt;div style="text-align: justify;"&gt;Uma das formas de optimizar o MapServer do lado do servidor &lt;span style="font-style: italic;"&gt;web&lt;/span&gt; consiste em corrê-lo em modo &lt;a href="http://en.wikipedia.org/wiki/FastCGI"&gt;&lt;span style="font-style: italic;"&gt;FastCGI&lt;/span&gt;&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Instalação&lt;/span&gt;&lt;br /&gt;(Em Windows com &lt;a href="http://www.maptools.org/ms4w/index.phtml"&gt;MS4W&lt;/a&gt;)&lt;br /&gt;&lt;br /&gt;1. Actualmente o MS4W vem com suporte a FastCGI sendo o módulo do Apache (&lt;a href="http://www.fastcgi.com/mod_fastcgi/docs/mod_fastcgi.html"&gt;mod_fcgid&lt;/a&gt;) necessário carregado por defeito. Instalar o MS4W em:&lt;br /&gt;&lt;pre class="literal-block"&gt;"c:/ms4w/"&lt;br /&gt;&lt;/pre&gt;Verificar se está instalado o &lt;a class="reference external" href="http://www.microsoft.com/downloads/details.aspx?FamilyID=9B2DA534-3E03-4391-8A4D-074B9F2BC1BF&amp;amp;displaylang=en"&gt;Visual C++ 2008 Redistributable Package&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;2. Editar o ficheiro de configuração do Apache &lt;span style="font-style: italic;"&gt;httpd.conf&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;ul style="text-align: justify;"&gt;&lt;li&gt;remover o comentário da linha:&lt;br /&gt;&lt;pre class="literal-block"&gt;LoadModule fcgid_module modules/mod_fcgid.so&lt;/pre&gt;&lt;/li&gt;&lt;li&gt;remover os comentários das seguintes linhas e colocar os caminhos correctos:&lt;br /&gt;&lt;pre class="literal-block"&gt;&lt;ifmodule&gt;&lt;br /&gt;   DefaultInitEnv PROJ_LIB    "c:/ms4w/proj/nad/"&lt;br /&gt;   DefaultInitEnv PATH        "c:/ms4w/Apache/cgi-bin;&lt;br /&gt;     c:/WINDOWS/system32;c:/WINDOWS;c:/WINDOWS/System32/Wbem;"&lt;br /&gt;   DefaultInitEnv windir      "c:/WINDOWS"&lt;br /&gt;   DefaultInitEnv SystemRoot  "c:/WINDOWS"&lt;br /&gt;   DefaultInitEnv SystemDrive "c:"&lt;br /&gt;   DefaultInitEnv GDAL_DATA   "c:/ms4w/gdaldata"&lt;br /&gt;   DefaultInitEnv GDAL_DRIVER_PATH "c:/ms4w/gdalplugins"&lt;br /&gt;   DefaultInitEnv TMP         "c:/ms4w/tmp"&lt;br /&gt;   DefaultInitEnv TEMP        "c:/ms4w/tmp"&lt;br /&gt;&lt;/ifmodule&gt;&lt;/pre&gt;&lt;/li&gt;&lt;li&gt; adicionar &lt;a href="http://www.fastcgi.com/mod_fastcgi/docs/mod_fastcgi.html"&gt;parâmetros de configuração do FastCGI&lt;/a&gt; como por exemplo:&lt;br /&gt;&lt;pre class="literal-block"&gt;&lt;ifmodule&gt;&lt;br /&gt;   IPCCommTimeout 60&lt;br /&gt;   IdleTimeout 60&lt;br /&gt;   DefaultMinClassProcessCount 2&lt;br /&gt;   DefaultMaxClassProcessCount 20&lt;br /&gt;   DefaultInitEnv PROJ_LIB    "c:/ms4w/proj/nad/"&lt;br /&gt;   DefaultInitEnv PATH        "c:/ms4w/Apache/cgi-bin;&lt;br /&gt;     c:/WINDOWS/system32;c:/WINDOWS;c:/WINDOWS/System32/Wbem;"&lt;br /&gt;   DefaultInitEnv windir      "c:/WINDOWS"&lt;br /&gt;   DefaultInitEnv SystemRoot  "c:/WINDOWS"&lt;br /&gt;   DefaultInitEnv SystemDrive "c:"&lt;br /&gt;   DefaultInitEnv GDAL_DATA   "c:/ms4w/gdaldata"&lt;br /&gt;   DefaultInitEnv GDAL_DRIVER_PATH "c:/ms4w/gdalplugins"&lt;br /&gt;   DefaultInitEnv TMP         "c:/ms4w/tmp"&lt;br /&gt;   DefaultInitEnv TEMP        "c:/ms4w/tmp"&lt;br /&gt;&lt;/ifmodule&gt;&lt;/pre&gt;&lt;/li&gt;&lt;li&gt;salvar o ficheiro &lt;span style="font-style: italic;"&gt;httpd.conf&lt;/span&gt; e reiniciar o Apache.&lt;/li&gt;&lt;/ul&gt;&lt;div style="text-align: justify;"&gt;3. Modificar a aplicação CGI de forma a apontar para "/fcgi-bin/mapserv.exe" em vez de "/cgi-bin/mapserv.exe".&lt;br /&gt;&lt;br /&gt;4. Adicionar o parâmetro seguinte às &lt;span style="font-style: italic;"&gt;layers&lt;/span&gt; para as quais queremos uma ligação FastCGI:&lt;br /&gt;&lt;pre class="literal-block"&gt;         PROCESSING "CLOSE_CONNECTION=DEFER"&lt;br /&gt;&lt;/pre&gt;5. Testar a aplicação. Se a instalação tiver sido bem sucedida então deveremos ver o processo "mapserv.exe" no Windows Task Manager, mantendo-se aberto enquanto o utilizador interage com a aplicação.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Notas&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Em modo FastCGI poderá não se verificar um aumento de performance embora haja um ganho em utilização de recursos e eficiência.&lt;br /&gt;&lt;br /&gt;Com &lt;span style="font-style: italic;"&gt;layers&lt;/span&gt; de &lt;span style="font-style: italic;"&gt;shapefiles &lt;/span&gt;o parâmetro  &lt;span style="font-size:85%;"&gt;&lt;span style="font-family: monospace;"&gt;&lt;/span&gt;"CLOSE_CONNECTION=DEFER"&lt;/span&gt; é simplesmente ignorado, não havendo portanto, um ganho de performance assinalável, por maiores que sejam as &lt;span style="font-style: italic;"&gt;shapefiles&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;O FastCGI compensa em situações em que exista um "custo" de ligação elevado, por exemplo, em ligações a ArcSDE, Oracle ou PostGIS.&lt;br /&gt;&lt;br /&gt;O melhor será sempre fazer testes de benchmarking.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4194726798732643561-6827785456886286751?l=geodivagar.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='text/html' href='http://geodivagar.blogspot.com/2010/02/mapserver-em-modo-fastcgi.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4194726798732643561/posts/default/6827785456886286751'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4194726798732643561/posts/default/6827785456886286751'/><link rel='alternate' type='text/html' href='http://geodivagar.blogspot.com/2010/02/mapserver-em-modo-fastcgi.html' title='MapServer em modo FastCGI'/><author><name>Luís Tavares</name><uri>http://www.blogger.com/profile/15564364674180846843</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4194726798732643561.post-5360246218537005831</id><published>2010-02-20T17:15:00.004Z</published><updated>2010-02-20T18:53:20.573Z</updated><title type='text'>Serviços geográficos disponibilizados em Portugal</title><content type='html'>&lt;div style="text-align: justify;"&gt;&lt;br /&gt;O Capítulo Português do OSGeo teve a feliz ideia de, através do grupo de trabalho &lt;a href="http://wiki.osgeo.org/wiki/OGC_Web_services"&gt;OGC Web Services,&lt;/a&gt; criar e manter uma &lt;a href="http://wiki.osgeo.org/wiki/Lista_de_web_services"&gt;lista de webservices&lt;/a&gt; nacionais ou contendo dados nacionais.&lt;br /&gt;&lt;br /&gt;Os serviços listados são basicamente os do IGP, SNIRH, Entre Douro e Vouga Digital, Esri Portugal (MDT de 30 metros já mencionado neste &lt;span style="font-style: italic;"&gt;blog&lt;/span&gt;) e Atlas Interactivo do Alentejo, Algarve e Andaluzia. Destes apenas o IGP dispõe de serviços WFS. Não é muito mas é o que temos.&lt;br /&gt;&lt;br /&gt;Podemos, no entanto, ensaiar uma pequena listagem de "candidatos a felizes contemplados":&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.igeo.pt/atlas/WebServices.html"&gt;&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;Web Map Service do Atlas de Portugal &lt;/a&gt;, cuja página diz "O serviço&lt;strong&gt; WMS do Atlas de Portugal&lt;/strong&gt; encontra-se temporariamente indisponível". Substituir "temporariamente" por "indefinidamente". Não me lembro de ver este serviço disponível, num passado recente;&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.snit.pt/channel.aspx?channelID=C0B7D1E4-8B4B-45D8-87EC-2236E0E15337&amp;amp;listaUltimos=1"&gt;Web Map Service do SNIT&lt;/a&gt; da DGOTDU o qual necessita de acreditação, pelo menos "nesta fase de desenvolvimento do sistema". Não vejo que desenvolvimento visto utilizarem uma solução &lt;span style="font-style: italic;"&gt;out of the box&lt;/span&gt;;&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.igeoe.pt/mapas/html/AplicacoesClientes.htm"&gt;Geo-WebServices do IGeoE&lt;/a&gt;. Dividem-se em serviços pagos (carta militar 1:25.000 e 1:50.000) e gratuitos (carta militar 1:250.000 e 1:500.000). O IGeoE disponibiliza não só serviços WMS mas também ArcIMS. Exelente oportunidade para testar a classe &lt;a href="http://dev.openlayers.org/releases/OpenLayers-2.8/doc/apidocs/files/OpenLayers/Layer/ArcIMS-js.html"&gt;OpenLayers.Layer.ArcIMS.&lt;br /&gt;&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;E é tudo, tirando alguns serviços publicados por acidente (por exemplo, WebSIGs municipais que consomem serviços &lt;span style="font-style: italic;"&gt;wms&lt;/span&gt; "internos" que de interno têm muito pouco).&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4194726798732643561-5360246218537005831?l=geodivagar.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='text/html' href='http://geodivagar.blogspot.com/2010/02/servicos-geograficos-disponibilizados.html#comment-form' title='2 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4194726798732643561/posts/default/5360246218537005831'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4194726798732643561/posts/default/5360246218537005831'/><link rel='alternate' type='text/html' href='http://geodivagar.blogspot.com/2010/02/servicos-geograficos-disponibilizados.html' title='Serviços geográficos disponibilizados em Portugal'/><author><name>Luís Tavares</name><uri>http://www.blogger.com/profile/15564364674180846843</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4194726798732643561.post-4917504192892357303</id><published>2010-02-14T01:14:00.004Z</published><updated>2010-02-14T01:53:50.987Z</updated><title type='text'>WMS no Maps</title><content type='html'>&lt;div style="text-align: justify;"&gt;&lt;br /&gt;Há uns tempos atrás andei a testar as possibilidades de integração de Web Map Services (WMS) com a API do Google Maps.&lt;br /&gt;&lt;br /&gt;Deixo &lt;a href="http://geomatica.comoj.com/"&gt;aqui&lt;/a&gt; um pequeno exemplo. Neste exemplo foi utilizado o serviço WMS &lt;a href="http://195.23.241.221/arcgis/rest/services/arcgis_online/MDT30m_PT_WGS84/MapServer"&gt;arcgis_online/MDT30m_PT_WGS84&lt;/a&gt; da ESRI.&lt;br /&gt;&lt;br /&gt;Para quem esteja interessado na temática &lt;span style="font-style: italic;"&gt;WMS/Google Maps&lt;/span&gt; deixo as seguintes referências obrigatórias:&lt;br /&gt;&lt;/div&gt;&lt;ul style="text-align: justify;"&gt;&lt;li&gt;&lt;a href="http://www.spatialdatalogic.com/cs/blogs/brian_flood/archive/2005/07/11/39.aspx"&gt;Google Maps API and WMS Servers&lt;/a&gt; no &lt;span style="font-style: italic;"&gt;blog&lt;/span&gt; do Brian Flood;&lt;/li&gt;&lt;li&gt;&lt;a href="http://blog.kylemulka.com/2005/08/how-to-overlay-custom-maps-using-the-google-maps-api-2/"&gt;How To Overlay Custom Maps Using the Google Maps API&lt;/a&gt; no &lt;span style="font-style: italic;"&gt;blog&lt;/span&gt; do Kyle Mulka;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://johndeck.blogspot.com/"&gt;John Decks's Blog&lt;/a&gt; (os links neste &lt;span style="font-style: italic;"&gt;blog&lt;/span&gt; estão quebrados mas fica a referência na mesma);&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.geoskating.com/gmap/"&gt;http://www.geoskating.com/gmap/&lt;/a&gt;.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4194726798732643561-4917504192892357303?l=geodivagar.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='text/html' href='http://geodivagar.blogspot.com/2010/02/wms-no-maps.html#comment-form' title='2 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4194726798732643561/posts/default/4917504192892357303'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4194726798732643561/posts/default/4917504192892357303'/><link rel='alternate' type='text/html' href='http://geodivagar.blogspot.com/2010/02/wms-no-maps.html' title='WMS no Maps'/><author><name>Luís Tavares</name><uri>http://www.blogger.com/profile/15564364674180846843</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4194726798732643561.post-2349232186878627575</id><published>2010-02-09T01:31:00.009Z</published><updated>2010-02-09T03:33:30.472Z</updated><title type='text'>Google maps: curiosidades</title><content type='html'>&lt;div style="text-align: justify;"&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-weight: bold;"&gt;Servidores&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Mapa &lt;code&gt;(G_NORMAL_MAP)&lt;/code&gt;&lt;/div&gt;&lt;ul style="text-align: justify;"&gt;&lt;li&gt;No mapa normal o Google utiliza quatro servidores para fazer balanceamento de carga: mt0, mt1, mt2 e mt3 (http://mt_.google.com);&lt;/li&gt;&lt;li&gt;Os servidores devolvem &lt;span style="font-style: italic;"&gt;tiles&lt;/span&gt; de dimensão 256*256 no formato &lt;span style="font-style: italic;"&gt;PNG&lt;/span&gt;;&lt;/li&gt;&lt;/ul&gt;&lt;div style="text-align: justify;"&gt;Satélite &lt;code&gt;(G_SATELLITE_MAP)&lt;/code&gt;&lt;/div&gt;&lt;ul style="text-align: justify;"&gt;&lt;li&gt;Para servir imagens de satélite o Google utiliza quatro servidores para fazer balanceamento de carga: kh0, kh1, kh2 e kh3 (http://kh_.google.com).&lt;br /&gt;&lt;/li&gt;&lt;li&gt;O "kh" significa &lt;a href="http://en.wikipedia.org/wiki/Keyhole,_Inc"&gt;Keyhole&lt;/a&gt;;&lt;/li&gt;&lt;li&gt;Os servidores devolvem &lt;span style="font-style: italic;"&gt;tiles&lt;/span&gt; de dimensão 256*256 no formato &lt;span style="font-style: italic;"&gt;JPG&lt;/span&gt;;&lt;/li&gt;&lt;/ul&gt;No modo híbrido &lt;code&gt;G_HYBRID_MAP&lt;/code&gt; os dados são servidos tanto por servidores &lt;span style="font-style: italic;"&gt;http://mt_.google.com &lt;/span&gt;como por servidores &lt;span style="font-style: italic;"&gt;http://kh_.google.com&lt;/span&gt;. É utilizada uma combinação de satélite e mapa em que os dados do mapa são servidos em &lt;span style="font-style: italic;"&gt;tiles &lt;/span&gt;transparentes.&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-weight: bold;"&gt;Projecção dos &lt;span style="font-style: italic;"&gt;tiles&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Os &lt;span style="font-style: italic;"&gt;tiles&lt;/span&gt; são projectados segundo a versão esférica da projecção de &lt;span style="font-style: italic;"&gt;Mercator&lt;/span&gt; em que o raio da esfera é igual ao semi-eixo maior do elipsóide associado ao sistema &lt;span style="font-style: italic;"&gt;WGS-84&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;Na sintaxe da &lt;a href="http://trac.osgeo.org/proj/"&gt;PROJ4&lt;/a&gt; vamos ter:&lt;br /&gt;&lt;pre&gt;+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0 +k=1.0 +units=m +nadgrids=@null +wktext&lt;br /&gt;+no_defs&lt;/pre&gt;A projecção dos &lt;span style="font-style: italic;"&gt;tiles&lt;/span&gt; é importante se quisermos trabalhar com &lt;a href="http://code.google.com/intl/pt-PT/apis/maps/documentation/overlays.html#Tile_Overlays"&gt;Tile Overlays&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Nos restantes casos estaremos sempre a trabalhar com coordenadas geográficas (referentes ao sistema &lt;span style="font-style: italic;"&gt;WGS-84&lt;/span&gt;), seja para fazer o &lt;span style="font-style: italic;"&gt;upload&lt;/span&gt; de um ficheiro &lt;span style="font-style: italic;"&gt;KML&lt;/span&gt; nos &lt;span style="font-style: italic;"&gt;My Maps&lt;/span&gt;, seja na utilização da API.&lt;br /&gt;&lt;br /&gt;Por exemplo, quando definimos o centro de um mapa e o nível de &lt;span style="font-style: italic;"&gt;zoom&lt;/span&gt;, temos:&lt;br /&gt;&lt;pre class="prettyprint"&gt;&lt;span class="pln"&gt;map&lt;/span&gt;&lt;span class="pun"&gt;.&lt;/span&gt;&lt;span class="pln"&gt;setCenter&lt;/span&gt;&lt;span class="pun"&gt;(&lt;/span&gt;&lt;span class="kwd"&gt;new&lt;/span&gt;&lt;span class="pln"&gt; &lt;/span&gt;&lt;span class="typ"&gt;GLatLng&lt;/span&gt;&lt;span class="pun"&gt;(&lt;/span&gt;&lt;span class="lit"&gt;38.5&lt;/span&gt;&lt;span class="pun"&gt;,&lt;/span&gt;&lt;span class="pln"&gt; &lt;/span&gt;&lt;span class="pun"&gt;-&lt;/span&gt;&lt;span class="lit"&gt;9.5&lt;/span&gt;&lt;span class="pun"&gt;),&lt;/span&gt;&lt;span class="pln"&gt; &lt;/span&gt;&lt;span class="lit"&gt;7&lt;/span&gt;&lt;span class="pun"&gt;);&lt;/span&gt;&lt;span class="pln"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/pre&gt; &lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="typ"&gt;&lt;span style="font-style: italic;font-size:85%;" &gt;GLatLng&lt;/span&gt; &lt;span style=";font-family:arial;font-size:85%;"  &gt;&lt;span style=";font-family:georgia;font-size:100%;"  &gt;é um ponto definido em coordenadas geográficas (latitude e longitude) no sistema &lt;span style="font-style: italic;"&gt;WGS-84&lt;/span&gt;&lt;/span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;pre class="prettyprint"&gt;&lt;br /&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4194726798732643561-2349232186878627575?l=geodivagar.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='text/html' href='http://geodivagar.blogspot.com/2010/02/google-maps-curiosidades.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4194726798732643561/posts/default/2349232186878627575'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4194726798732643561/posts/default/2349232186878627575'/><link rel='alternate' type='text/html' href='http://geodivagar.blogspot.com/2010/02/google-maps-curiosidades.html' title='Google maps: curiosidades'/><author><name>Luís Tavares</name><uri>http://www.blogger.com/profile/15564364674180846843</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4194726798732643561.post-8457751913573303461</id><published>2010-02-07T23:48:00.004Z</published><updated>2010-02-08T01:55:10.885Z</updated><title type='text'>Shapefile</title><content type='html'>&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;Em 1998 a ESRI publicou um &lt;span style="font-style: italic;"&gt;&lt;a href="http://www.esri.com/library/whitepapers/pdfs/shapefile.pdf"&gt;white paper&lt;/a&gt;,&lt;span style="font-style: italic;"&gt; &lt;/span&gt;&lt;/span&gt;com a descrição técnica do formato ESRI Shapefile.&lt;br /&gt;&lt;br /&gt;Nesse momento passou a ser possível, sem constrangimentos de qualquer ordem, a leitura e escrita neste formato, o qual se tornou (já era?) no standard &lt;span style="font-style: italic;"&gt;de facto&lt;/span&gt; no que diz respeito a formatos vectoriais de SIG.&lt;br /&gt;&lt;br /&gt;Aliás, nessa &lt;a href="http://www.esri.com/library/whitepapers/pdfs/shapefile.pdf"&gt;descrição técnica&lt;/a&gt;, na secção &lt;span style="font-style: italic;"&gt;How Shapefiles Can Be Created&lt;/span&gt;, é referido explicitamente, depois de mencionar a linha de produtos ESRI, "&lt;span style="font-style: italic;"&gt;Write directly to the shapefile specifications by creating a program".&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Na realidade, este facto foi dos que mais contribuíram para o aparecimento de &lt;span style="font-style: italic;"&gt;software open-source&lt;/span&gt; &lt;span style="font-style: italic;"&gt;GIS&lt;/span&gt;. Repare-se que, existem ferramentas &lt;span style="font-style: italic;"&gt;open-source&lt;/span&gt; que utilizam exclusivamente a &lt;span style="font-style: italic;"&gt;shapefile &lt;/span&gt;como formato vectorial nativo. Exemplos? Por exemplo, o &lt;a href="http://www.mapwindow.org/"&gt;MapWindow GIS&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;O mesmo podemos dizer da introdução do formato &lt;a href="http://en.wikipedia.org/wiki/ESRI_grid"&gt;ARC/INFO ASCII GRID&lt;/a&gt;, o qual devido à sua natureza (ficheiro de texto com &lt;span style="font-style: italic;"&gt;Header&lt;/span&gt;), não necessitou de ver a sua especificação publicada para que fosse adoptado por terceiros.&lt;br /&gt;&lt;br /&gt;Enfim, a César o que é de César.&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;a href="http://www.mapwindow.org/"&gt;&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4194726798732643561-8457751913573303461?l=geodivagar.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='text/html' href='http://geodivagar.blogspot.com/2010/02/shapefile.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4194726798732643561/posts/default/8457751913573303461'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4194726798732643561/posts/default/8457751913573303461'/><link rel='alternate' type='text/html' href='http://geodivagar.blogspot.com/2010/02/shapefile.html' title='Shapefile'/><author><name>Luís Tavares</name><uri>http://www.blogger.com/profile/15564364674180846843</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4194726798732643561.post-8397594434833418850</id><published>2010-01-26T01:46:00.008Z</published><updated>2010-02-05T18:12:00.418Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='REST'/><category scheme='http://www.blogger.com/atom/ns#' term='Aster'/><category scheme='http://www.blogger.com/atom/ns#' term='Digital Elevation Model'/><category scheme='http://www.blogger.com/atom/ns#' term='altitude'/><title type='text'>Clique no mapa para saber a altitude</title><content type='html'>&lt;div style="text-align: justify;"&gt;Faça &lt;span style="font-style: italic;"&gt;zoom&lt;/span&gt; sobre a área pretendida, clique no mapa e será aberto um &lt;span style="font-style: italic;"&gt;popup&lt;/span&gt; com as coordenadas e a respectiva altitude.&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div id="map_canvas" style="width: 600px; height: 600px;"&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;Altitudes obtidas a partir do Aster Global Digital Elevation Model através de um Webservice do tipo REST.&lt;br /&gt;Resolução dos dados: 30 * 30 metros.&lt;br /&gt;Exactidão vertical: 20 metros (nível de confiança de 95%).&lt;br /&gt;Exactidão horizontal: 30 metros (nível de confiança de 95%).&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4194726798732643561-8397594434833418850?l=geodivagar.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='text/html' href='http://geodivagar.blogspot.com/2010/01/clique-no-mapa-para-saber-altitude.html#comment-form' title='2 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4194726798732643561/posts/default/8397594434833418850'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4194726798732643561/posts/default/8397594434833418850'/><link rel='alternate' type='text/html' href='http://geodivagar.blogspot.com/2010/01/clique-no-mapa-para-saber-altitude.html' title='Clique no mapa para saber a altitude'/><author><name>Luís Tavares</name><uri>http://www.blogger.com/profile/15564364674180846843</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4194726798732643561.post-3712923579427123652</id><published>2010-01-20T02:24:00.005Z</published><updated>2010-01-20T03:14:09.469Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='feature class'/><category scheme='http://www.blogger.com/atom/ns#' term='Personal Geodatabase'/><category scheme='http://www.blogger.com/atom/ns#' term='shapefile'/><title type='text'>Personal Geodatabase sem recorrer ao ArcGIS</title><content type='html'>&lt;div style="text-align: justify;"&gt;&lt;br /&gt;É frequente a utilização do formato ESRI @ Personal Geodatabase (PGeo) como formato de transferência de dados geográficos.  Também é frequente encontrar sites que disponibilizam dados nesse mesmo formato para &lt;span style="font-style: italic;"&gt;download&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;Se estivermos interessados apenas em visualizar esses dados, isso pode ser feito, por exemplo, recorrendo ao &lt;a href="http://www.accuglobe.net/"&gt;AccuGlobe® Desktop 2007&lt;/a&gt;.  Curiosamente, o &lt;a href="http://www.tatukgis.com/Home/home.aspx"&gt;TatukGIS Viewer&lt;/a&gt; não o permite.&lt;br /&gt;&lt;br /&gt;Se por outro lado, estivermos interessados em editar esses dados, podemos sempre utilizar a biblioteca &lt;a href="http://www.gdal.org/ogr/"&gt;OGR Simple Feature Library&lt;/a&gt;, mais especificamente o utilitário &lt;span style="font-style: italic;"&gt;ogr2ogr&lt;/span&gt;. Nota: o driver PGeo tem que estar instalado. Podem recorrer à instalação &lt;a href="http://fwtools.maptools.org/"&gt;FWTools&lt;/a&gt; para Windows.&lt;br /&gt;&lt;br /&gt;Por exemplo, o comando seguinte irá criar uma pasta de nome &lt;span style="font-style: italic;"&gt;aaa &lt;/span&gt;contendo uma &lt;span style="font-style: italic;"&gt;shapefile&lt;/span&gt; por cada &lt;span style="font-style: italic;"&gt;feature class&lt;/span&gt; contida na &lt;span style="font-style: italic;"&gt;geodatabase&lt;/span&gt; &lt;span style="font-style: italic;"&gt;aaa.mdb&lt;/span&gt;,&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;&gt;&gt; ogr2ogr &lt;/span&gt;&lt;span class="content"  style="font-family:courier new;"&gt;&lt;code&gt;-f "ESRI Shapefile" bbb aaa.mdb&lt;br /&gt;&lt;br /&gt;&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4194726798732643561-3712923579427123652?l=geodivagar.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='text/html' href='http://geodivagar.blogspot.com/2010/01/personal-geodatabase-sem-recorrer-ao.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4194726798732643561/posts/default/3712923579427123652'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4194726798732643561/posts/default/3712923579427123652'/><link rel='alternate' type='text/html' href='http://geodivagar.blogspot.com/2010/01/personal-geodatabase-sem-recorrer-ao.html' title='Personal Geodatabase sem recorrer ao ArcGIS'/><author><name>Luís Tavares</name><uri>http://www.blogger.com/profile/15564364674180846843</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4194726798732643561.post-6526388088643179479</id><published>2010-01-08T16:25:00.010Z</published><updated>2010-03-30T23:15:27.084+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Ortofotomapas'/><category scheme='http://www.blogger.com/atom/ns#' term='WMS'/><category scheme='http://www.blogger.com/atom/ns#' term='IGP'/><category scheme='http://www.blogger.com/atom/ns#' term='Openlayers'/><title type='text'>OpenLayers: Ortofotomapas do IGP</title><content type='html'>&lt;div style="text-align: justify;"&gt;Da listagem de &lt;a href="http://mapas.igeo.pt/"&gt;serviços WMS disponibilizados pelo IGP&lt;/a&gt; não constam os "famosos" Ortofotomapas os quais podemos ver, por exemplo, no &lt;a href="http://www.bing.com/maps/"&gt;Bing Maps&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;No entanto, o IGP dispõe de um visualizador de dados  escrito em OpenLayers, do qual, a partir do respectivo código fonte, podemos extrair o endereço desses mesmos Ortofotomapas.&lt;br /&gt;&lt;br /&gt;A saber, &lt;span style="font-style: italic;"&gt;http://mapas.igeo.pt/tilecache/tilecache.py?&lt;/span&gt;  , Layer: Ortos&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;Actualização (30 de Março de 2010) - Constatei hoje que este visualizador de OpenLayers não está disponível (sabe-se lá porquê). Alternativamente, disponibilizo o link seguinte o qual funciona como cliente dos Ortos. Nota: os Ortos só estão disponíveis para níveis de zoom superiores a 8, inclusive. &lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;a href="http://geomatica.comoj.com/ortos.html"&gt;http://geomatica.comoj.com/ortos.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4194726798732643561-6526388088643179479?l=geodivagar.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='text/html' href='http://geodivagar.blogspot.com/2010/01/ortos-do-igp.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4194726798732643561/posts/default/6526388088643179479'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4194726798732643561/posts/default/6526388088643179479'/><link rel='alternate' type='text/html' href='http://geodivagar.blogspot.com/2010/01/ortos-do-igp.html' title='OpenLayers: Ortofotomapas do IGP'/><author><name>Luís Tavares</name><uri>http://www.blogger.com/profile/15564364674180846843</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4194726798732643561.post-4384723099699894205</id><published>2010-01-08T00:43:00.004Z</published><updated>2010-01-08T01:01:04.479Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='dwg'/><category scheme='http://www.blogger.com/atom/ns#' term='Autocad Map 2008'/><category scheme='http://www.blogger.com/atom/ns#' term='Shape Files'/><category scheme='http://www.blogger.com/atom/ns#' term='DBF'/><category scheme='http://www.blogger.com/atom/ns#' term='autocad'/><title type='text'>Importar ESRI ® Shape files no AutoCAD</title><content type='html'>&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;&lt;a href="http://www.corsi-autocad.com/download.asp?programma=http://www.abcautocad.it/Download/ImportShape/ABCAutoCAD_ImportShape.exe"&gt;Import Shapes&lt;/a&gt; é um aplicativo que corre sobre Autocad, o qual permite converter Shape Files em DWG (conversão tanto de geometrias, SHP, como de atributos, DBF). O resultado é um ficheiro Autocad normal, o qual é também 100% compatível com Autocad Map 2008.&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4194726798732643561-4384723099699894205?l=geodivagar.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='text/html' href='http://geodivagar.blogspot.com/2010/01/importar-esri-shape-files-no-autocad.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4194726798732643561/posts/default/4384723099699894205'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4194726798732643561/posts/default/4384723099699894205'/><link rel='alternate' type='text/html' href='http://geodivagar.blogspot.com/2010/01/importar-esri-shape-files-no-autocad.html' title='Importar ESRI ® Shape files no AutoCAD'/><author><name>Luís Tavares</name><uri>http://www.blogger.com/profile/15564364674180846843</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4194726798732643561.post-8465334684934081685</id><published>2010-01-08T00:28:00.002Z</published><updated>2010-01-08T00:38:24.762Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='GDAL'/><category scheme='http://www.blogger.com/atom/ns#' term='ogr2ogr'/><category scheme='http://www.blogger.com/atom/ns#' term='OGR'/><category scheme='http://www.blogger.com/atom/ns#' term='ogr2gui'/><title type='text'>Front-end gráfico para ogr2ogr</title><content type='html'>&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;ogr2ogr é um utilitário para conversão e manipulação de dados vectoriais. Faz parte do projecto OGR (sub-projecto da GDAL, "Geospatial Data Abstraction Library”).&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.ogr2gui.ca/index.php"&gt;ogr2gui&lt;/a&gt; é um aplicativo com interface gráfico o qual permite converter dados sem recorrer à sintaxe complexa do ogr2ogr. É um projecto &lt;span style="font-style: italic;"&gt;open-source&lt;/span&gt;.&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4194726798732643561-8465334684934081685?l=geodivagar.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='text/html' href='http://geodivagar.blogspot.com/2010/01/front-end-grafico-para-ogr2ogr.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4194726798732643561/posts/default/8465334684934081685'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4194726798732643561/posts/default/8465334684934081685'/><link rel='alternate' type='text/html' href='http://geodivagar.blogspot.com/2010/01/front-end-grafico-para-ogr2ogr.html' title='Front-end gráfico para ogr2ogr'/><author><name>Luís Tavares</name><uri>http://www.blogger.com/profile/15564364674180846843</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4194726798732643561.post-189362258453617447</id><published>2009-12-18T13:06:00.004Z</published><updated>2009-12-18T17:04:31.459Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Hayford-Gauss Datum Lisboa'/><category scheme='http://www.blogger.com/atom/ns#' term='Geográficas Datum 73'/><category scheme='http://www.blogger.com/atom/ns#' term='Geográficas Datum Lisboa'/><category scheme='http://www.blogger.com/atom/ns#' term='WGS84'/><category scheme='http://www.blogger.com/atom/ns#' term='Hayford-Gauss Datum 73'/><category scheme='http://www.blogger.com/atom/ns#' term='ETRS89 / Portugal TM06'/><title type='text'>Conversão entre sistemas de coordenadas utilizados em Portugal</title><content type='html'>&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://geomatica.no.sapo.pt/proj4js.html"&gt;LINK&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Sistemas suportados:&lt;br /&gt;- Hayford-Gauss Datum Lisboa (Militar)&lt;br /&gt;- Hayford-Gauss Datum Lisboa (IGP)&lt;br /&gt;- Hayford-Gauss Datum 73 (IGP)&lt;br /&gt;- ETRS89 / Portugal TM06&lt;br /&gt;- Geográficas Datum Lisboa&lt;br /&gt;- Geográficas Datum 73&lt;br /&gt;- long/lat:WGS84&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4194726798732643561-189362258453617447?l=geodivagar.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='text/html' href='http://geodivagar.blogspot.com/2009/12/conversao-entre-sistemas-de-coordenadas.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4194726798732643561/posts/default/189362258453617447'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4194726798732643561/posts/default/189362258453617447'/><link rel='alternate' type='text/html' href='http://geodivagar.blogspot.com/2009/12/conversao-entre-sistemas-de-coordenadas.html' title='Conversão entre sistemas de coordenadas utilizados em Portugal'/><author><name>Luís Tavares</name><uri>http://www.blogger.com/profile/15564364674180846843</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4194726798732643561.post-4078171054639418180</id><published>2009-11-17T17:51:00.005Z</published><updated>2009-11-18T00:12:57.065Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='dwg'/><category scheme='http://www.blogger.com/atom/ns#' term='dxf'/><category scheme='http://www.blogger.com/atom/ns#' term='autocad'/><title type='text'>Conversão entre DWG e DXF</title><content type='html'>&lt;h1 style="text-align: justify;"&gt;Active DWG DXF Converter&lt;/h1&gt;&lt;div style="text-align: justify;"&gt;    &lt;/div&gt;&lt;h3 style="text-align: justify;"&gt;&lt;span style="font-weight: normal;font-size:100%;" &gt;Utilitário para conversão bi-direccional entre DWG e DXF. Permite também a conversão entre diferentes versões de Autocad. Não necessita de ter instalado o Autocad.&lt;/span&gt;&lt;br /&gt;&lt;/h3&gt;&lt;div style="text-align: justify;"&gt;&lt;a href="http://www.autodwg.com/DWG_DXF_Converter/DWG2DXF.exe"&gt;http://www.autodwg.com/DWG_DXF_Converter/DWG2DXF.exe&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4194726798732643561-4078171054639418180?l=geodivagar.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='text/html' href='http://geodivagar.blogspot.com/2009/11/conversao-entre-dwg-e-dxf.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4194726798732643561/posts/default/4078171054639418180'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4194726798732643561/posts/default/4078171054639418180'/><link rel='alternate' type='text/html' href='http://geodivagar.blogspot.com/2009/11/conversao-entre-dwg-e-dxf.html' title='Conversão entre DWG e DXF'/><author><name>Luís Tavares</name><uri>http://www.blogger.com/profile/15564364674180846843</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4194726798732643561.post-8405940508868381609</id><published>2009-11-17T17:43:00.003Z</published><updated>2009-11-18T00:12:13.598Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='dwg'/><category scheme='http://www.blogger.com/atom/ns#' term='microstation'/><category scheme='http://www.blogger.com/atom/ns#' term='dgn'/><category scheme='http://www.blogger.com/atom/ns#' term='autocad'/><title type='text'>Conversão entre DGN e DWG</title><content type='html'>&lt;h1 style="text-align: justify;"&gt;DGN DWG Converter&lt;/h1&gt;&lt;div style="text-align: justify;"&gt;         Utilitário para conversão entre DGN e DWG. Não necessita ter instalado nem o AutoCAD nem o MicroStation. Conversão em modo &lt;span style="font-style: italic;"&gt;batch&lt;/span&gt; só é possível com a versão PRO.&lt;br /&gt;&lt;br /&gt;Suporta formatos MicroStation V8 DGN e AutoCAD 2009 DWG&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.autodwg.com/dgn-to-dwg/download.htm"&gt;http://www.autodwg.com/dgn-to-dwg/download.htm&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4194726798732643561-8405940508868381609?l=geodivagar.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='text/html' href='http://geodivagar.blogspot.com/2009/11/conversao-entre-dgn-e-dwg.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4194726798732643561/posts/default/8405940508868381609'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4194726798732643561/posts/default/8405940508868381609'/><link rel='alternate' type='text/html' href='http://geodivagar.blogspot.com/2009/11/conversao-entre-dgn-e-dwg.html' title='Conversão entre DGN e DWG'/><author><name>Luís Tavares</name><uri>http://www.blogger.com/profile/15564364674180846843</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4194726798732643561.post-7743925196747446088</id><published>2009-11-13T01:30:00.002Z</published><updated>2009-11-13T01:32:20.760Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='EPSG'/><category scheme='http://www.blogger.com/atom/ns#' term='Sistemas de Referência'/><title type='text'>Códigos EPSG utilizados em Portugal</title><content type='html'>&lt;div style="text-align: justify;"&gt;Para quem precise de saber os identificadores associados aos sistemas de referência utilizados em Portugal, e não tenha vontade ou não queira andar à procura, seja em &lt;span style="font-style: italic;"&gt;sites&lt;/span&gt; nacionais (&lt;a href="http://www.igeo.pt/"&gt;IGP&lt;/a&gt;, por exemplo), seja em &lt;span style="font-style: italic;"&gt;sites&lt;/span&gt; internacionais (&lt;a href="http://www.epsg.org/"&gt;OGP Surveying &amp;amp; Positioning Committee&lt;/a&gt;, entre outros), deixo aqui a listagem:&lt;br /&gt;&lt;/div&gt;&lt;ul style="text-align: justify;" class="whs8" type="disc"&gt;&lt;li class="kadov-p"&gt; &lt;p class="whs6"&gt;EPSG: 27492 (Datum 73/ Hayford-Gauss) &lt;/p&gt; &lt;/li&gt;&lt;li class="kadov-p"&gt; &lt;p class="whs6"&gt;EPSG: 20790 (Datum Lisboa/ Coordenadas Militares)&lt;/p&gt; &lt;/li&gt;&lt;li class="kadov-p"&gt; &lt;p class="whs6"&gt;EPSG: 20791 (Datum Lisboa/ Hayford-Gauss) &lt;/p&gt; &lt;/li&gt;&lt;li class="kadov-p"&gt; &lt;p class="whs6"&gt;EPSG: 4326 (WGS 84/ Coordenadas Geográficas) &lt;/p&gt; &lt;/li&gt;&lt;li class="kadov-p"&gt; &lt;p class="whs6"&gt;EPSG: 4258 (ETRS89/ Coordenadas Geográficas) &lt;/p&gt; &lt;/li&gt;&lt;li class="kadov-p"&gt; &lt;p class="whs6"&gt;EPSG: 2191 (Datum Base SE - Porto Santo (Madeira) / UTM zona 28N)  &lt;/p&gt; &lt;/li&gt;&lt;li class="kadov-p"&gt; &lt;p class="whs6"&gt;EPSG: 2188 (Datum Observatório - Flores (Grupo Ocidental do  Arquipélago dos Açores) / UTM zona 25N) &lt;/p&gt; &lt;/li&gt;&lt;li class="kadov-p"&gt; &lt;p class="whs6"&gt;EPSG: 2189 /Datum Base SW - Graciosa (Grupo Central do Arquipélago  dos Açores) / UTM zona 26N &lt;/p&gt; &lt;/li&gt;&lt;li class="kadov-p"&gt; &lt;p class="whs6"&gt;EPSG: 2190 (Datum S. Braz - S. Miguel (Grupo Oriental do  Arquipélago dos Açores) / UTM zona 26N) &lt;/p&gt; &lt;/li&gt;&lt;li class="kadov-p"&gt; &lt;p class="whs6"&gt;EPSG: 3763 (PT-TM06/ETRS89) &lt;/p&gt; &lt;/li&gt;&lt;li class="kadov-p"&gt; &lt;p class="whs6"&gt;EPSG: 25829 (ETRS89 / UTM  zona  29N) &lt;/p&gt; &lt;/li&gt;&lt;li class="kadov-p"&gt; &lt;p class="whs6"&gt;EPSG: 32625 (WGS  84/ UTM  25N) &lt;/p&gt; &lt;/li&gt;&lt;li class="kadov-p"&gt; &lt;p class="whs6"&gt;EPSG: 32626 (WGS  84/ UTM  26N) &lt;/p&gt; &lt;/li&gt;&lt;li class="kadov-p"&gt; &lt;p class="whs6"&gt;EPSG: 32628 (WGS  84/ UTM  28N) &lt;/p&gt; &lt;/li&gt;&lt;li class="kadov-p"&gt; &lt;p class="whs6"&gt;EPSG: 32629 (WGS  84/ UTM  29N) &lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4194726798732643561-7743925196747446088?l=geodivagar.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='text/html' href='http://geodivagar.blogspot.com/2009/11/codigos-epsg-utilizados-em-portugal.html#comment-form' title='3 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4194726798732643561/posts/default/7743925196747446088'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4194726798732643561/posts/default/7743925196747446088'/><link rel='alternate' type='text/html' href='http://geodivagar.blogspot.com/2009/11/codigos-epsg-utilizados-em-portugal.html' title='Códigos EPSG utilizados em Portugal'/><author><name>Luís Tavares</name><uri>http://www.blogger.com/profile/15564364674180846843</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4194726798732643561.post-3702913391599061166</id><published>2009-11-13T01:28:00.003Z</published><updated>2009-11-13T01:32:42.513Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='KML'/><category scheme='http://www.blogger.com/atom/ns#' term='Google Sketchup'/><title type='text'>Google Sketchup</title><content type='html'>&lt;div style="text-align: justify;"&gt;O Sketchup sempre foi bastante negligenciado pela geo-comunidade ao contrário do que acontece, por exemplo, nos domínios da arquitectura e mesmo do design gráfico. Na realidade foi a primeira ferramenta a permitir exportar modelos 3D para KML. Aliás, essa foi uma das razões da aquisição da @Last Software (empresa criadora do Sketchup) pela Google.&lt;br /&gt;&lt;br /&gt;As versões gratuitas não permitem importar &lt;span style="font-style: italic;"&gt;shapefiles&lt;/span&gt;, no entanto existe um plug-in para a versão 5, criado com esse propósito. O download está disponível em  &lt;a href="http://download.sketchup.com/downloads/downloads/plugins/google/InstallSketchUp5Shape-002EN.exe"&gt;Download&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4194726798732643561-3702913391599061166?l=geodivagar.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='text/html' href='http://geodivagar.blogspot.com/2009/11/google-sketchup.html#comment-form' title='1 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4194726798732643561/posts/default/3702913391599061166'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4194726798732643561/posts/default/3702913391599061166'/><link rel='alternate' type='text/html' href='http://geodivagar.blogspot.com/2009/11/google-sketchup.html' title='Google Sketchup'/><author><name>Luís Tavares</name><uri>http://www.blogger.com/profile/15564364674180846843</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4194726798732643561.post-8196635307780083187</id><published>2009-11-13T01:25:00.003Z</published><updated>2009-11-13T01:32:57.393Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Google Earth'/><category scheme='http://www.blogger.com/atom/ns#' term='MapWindow'/><category scheme='http://www.blogger.com/atom/ns#' term='EPSG'/><category scheme='http://www.blogger.com/atom/ns#' term='PROJ'/><title type='text'>Sistemas de Coordenadas no MapWindow GIS</title><content type='html'>&lt;div style="text-align: justify;"&gt;A maioria das ferramentas de SIG open-source recorre à biblioteca PROJ, no que diz respeito à definição e transformação de sistemas de coordenadas. No entanto, para efectuar transformações que impliquem uma mudança de Datum, é necessário que o software disponha não só dos parâmetros de definição do sistema, como também dos parâmetros de transformação. Relativamente aos primeiros, a biblioteca PROJ é distribuída com os parâmetros associados aos códigos EPSG, sendo no entanto reduzido o número de códigos EPSG que tenham parâmetros de transformação associados. Assim, é necessário definir esses parâmetros de forma a que o resultado seja o esperado.&lt;br /&gt;&lt;br /&gt;O MapWindow, ao utilizar a biblioteca PROJ, não é excepção e como tal vamos descrever uma forma de efectuar transformações de coordenadas no MapWindow que envolvam mudança de Datum.&lt;br /&gt;&lt;br /&gt;Imaginemos que temos uma &lt;span style="font-style: italic;"&gt;shapefile&lt;/span&gt; no sistema de coordenadas cartográficas Hayford-Gauss Datum Lisboa Militar e que queremos mudar o sistema para coordenadas geográficas WGS-84 (transformação muito útil para carregar dados no Google Earth).&lt;br /&gt;&lt;br /&gt;1-Vamos criar um ficheiro com extensão &lt;span style="font-style: italic;"&gt;prj,&lt;/span&gt; com o mesmo nome e na mesma directoria da &lt;span style="font-style: italic;"&gt;shapefile&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;2-Seguidamente, copiamos para o ficheiro &lt;span style="font-style: italic;"&gt;prj&lt;/span&gt; o seguinte código:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;PROJCS["Datum_Lx_Hayford_Gauss_IGeoE",&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;GEOGCS["GCS_Datum_Lisboa_Hayford", DATUM["D_Datum_Lisboa_Hayford",&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;SPHEROID["International_1924", 6378388.0, 297.0],&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;TOWGS84[-282.1,-72.2,119.95,-1.53,0.14,-0.89,-4.5]],&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;PRIMEM["Greenwich", 0.0],&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;UNIT["degree", 0.017453292519943295],&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;AXIS["Lon", EAST],  &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;AXIS["Lat", NORTH]],&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;PROJECTION["Transverse_Mercator"],&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;PARAMETER["central_meridian", -8.13190611111111],&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;PARAMETER["latitude_of_origin", 39.6666666666667], &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;PARAMETER["scale_factor", 1.0],&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;PARAMETER["false_easting", 200000.0],&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;PARAMETER["false_northing", 300000.0], UNIT["m", 1.0], AXIS["x", EAST],  AXIS["y", NORTH]]&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Notem a existência do parâmetro TOWGS84 o qual raramente consta dos parâmetros EPSG. É este parâmetro que permite efectuar a mudança de Datum (neste caso recorrendo a uma transformação espacial de semelhança utilizando os parâmetros do Instituto Geográfico Português)&lt;br /&gt;&lt;br /&gt;3-Abrimos o MapWindow e depois de activarmos o &lt;span style="font-style: italic;"&gt;Plugin&lt;/span&gt; GISTOOLS selecionamos a opção Vector &gt;&gt; Reproject a Shapefile&lt;br /&gt;&lt;br /&gt;4- Preencher o Menu da seguinte forma:&lt;br /&gt;&lt;br /&gt;Category: Geographic Coordinate Systems&lt;br /&gt;&lt;br /&gt;Group: World&lt;br /&gt;&lt;br /&gt;Name: WGS 1984&lt;br /&gt;&lt;br /&gt;5- Agora basta premir OK e a transformação  é efectuada.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Nota: O MapWindow internamente foi associar ao nosso ficheiro inicial uma &lt;span style="font-style: italic;"&gt;Custom Projection&lt;/span&gt;. Refira-se que a única forma de associar uma &lt;span style="font-style: italic;"&gt;Custom Projection&lt;/span&gt; no MapWindow é através do ficheiro &lt;span style="font-style: italic;"&gt;prj&lt;/span&gt;, pelo menos até à versão 4.6&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4194726798732643561-8196635307780083187?l=geodivagar.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='text/html' href='http://geodivagar.blogspot.com/2009/11/sistemas-de-coordenadas-no-mapwindow.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4194726798732643561/posts/default/8196635307780083187'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4194726798732643561/posts/default/8196635307780083187'/><link rel='alternate' type='text/html' href='http://geodivagar.blogspot.com/2009/11/sistemas-de-coordenadas-no-mapwindow.html' title='Sistemas de Coordenadas no MapWindow GIS'/><author><name>Luís Tavares</name><uri>http://www.blogger.com/profile/15564364674180846843</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4194726798732643561.post-1096202548975335346</id><published>2009-05-02T00:51:00.006+01:00</published><updated>2009-05-03T19:17:23.382+01:00</updated><title type='text'>Gripe Suína cartografada</title><content type='html'>Interessante a utilização de &lt;span style="font-style: italic;"&gt;webmapping&lt;/span&gt; para monitorização da Gripe Suína. Fonte: &lt;small&gt;&lt;a href="http://maps.google.com/maps/ms?hl=es&amp;amp;ie=UTF8&amp;amp;oe=UTF8&amp;amp;msa=0&amp;amp;msid=106484775090296685271.0004681a37b713f6b5950&amp;amp;ll=5.442389,-89.777527&amp;amp;spn=153.235694,298.828125&amp;amp;z=1&amp;amp;source=embed" style="color: rgb(0, 0, 255); text-align: left;"&gt;H1N1 Swine Flu&lt;/a&gt;&lt;/small&gt;&lt;br /&gt;&lt;br /&gt;POIs:&lt;br /&gt;&lt;br /&gt;- Rosa - casos suspeitos;&lt;br /&gt;&lt;br /&gt;- Azuis - casos confirmados;&lt;br /&gt;&lt;br /&gt;- Amarelo - casos que se vieram a revelar "falso alarme";&lt;br /&gt;&lt;br /&gt;- Com ponto negro - resultaram em óbito;&lt;br /&gt;&lt;br /&gt;&lt;iframe marginheight="0" marginwidth="0" src="http://maps.google.com/maps/ms?hl=es&amp;amp;ie=UTF8&amp;amp;oe=UTF8&amp;amp;msa=0&amp;amp;msid=106484775090296685271.0004681a37b713f6b5950&amp;amp;ll=5,-9&amp;amp;spn=153.235694,298.828125&amp;amp;z=1&amp;amp;output=embed" scrolling="no" width="425" frameborder="0" height="350"&gt;&lt;/iframe&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4194726798732643561-1096202548975335346?l=geodivagar.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='text/html' href='http://geodivagar.blogspot.com/2009/05/gripe-suina-cartografada.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4194726798732643561/posts/default/1096202548975335346'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4194726798732643561/posts/default/1096202548975335346'/><link rel='alternate' type='text/html' href='http://geodivagar.blogspot.com/2009/05/gripe-suina-cartografada.html' title='Gripe Suína cartografada'/><author><name>Luís Tavares</name><uri>http://www.blogger.com/profile/15564364674180846843</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4194726798732643561.post-5523624514541707486</id><published>2009-04-23T23:41:00.003+01:00</published><updated>2009-04-24T00:01:28.901+01:00</updated><title type='text'>Cyber Geography</title><content type='html'>&lt;div style="text-align: justify;"&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;Deixo aqui algumas ligações sobre esta temática, todas agregadas à página pessoal de &lt;a href="http://personalpages.manchester.ac.uk/staff/m.dodge/cybergeography/"&gt;Martin Dodge&lt;/a&gt; o qual se dedicou a esta área aquando da sua passagem pelo &lt;a href="http://www.casa.ucl.ac.uk/"&gt;CASA&lt;/a&gt; (Center for Advanced Spacial Analysis) do University College London, tendo a informação sido coligida entre 1997 e 2004. Apesar das páginas não serem actualizadas desde essa altura, vale a pena dar uma vista de olhos.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://personalpages.manchester.ac.uk/staff/m.dodge/cybergeography/geography_of_cyberspace.html"&gt;The Geography of Cyber Space Directory&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://personalpages.manchester.ac.uk/staff/m.dodge/cybergeography/atlas/atlas.html"&gt;An Atlas of CyberSpaces&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Existe também o livro o qual se encontra disponivel em pdf:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.kitchin.org/atlas/index.html"&gt;Atlas of Cyberspace&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4194726798732643561-5523624514541707486?l=geodivagar.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='text/html' href='http://geodivagar.blogspot.com/2009/04/cyber-geography.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4194726798732643561/posts/default/5523624514541707486'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4194726798732643561/posts/default/5523624514541707486'/><link rel='alternate' type='text/html' href='http://geodivagar.blogspot.com/2009/04/cyber-geography.html' title='Cyber Geography'/><author><name>Luís Tavares</name><uri>http://www.blogger.com/profile/15564364674180846843</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4194726798732643561.post-7573227467193622762</id><published>2009-04-15T22:24:00.002+01:00</published><updated>2009-04-15T22:28:57.533+01:00</updated><title type='text'>Sistema Nacional de Exploração e Gestão da Informação (SINERGIC)</title><content type='html'>&lt;div style="text-align: justify;"&gt;O primeiro concurso internacional do &lt;a href="http://www.igeo.pt/sinergic/portugues/SiNErGIC.html" target="blank"&gt;Sistema Nacional de Exploração e Gestão da Informação&lt;/a&gt; (SINERGIC) vai ser lançado pelo Governo este mês de Abril.&lt;br /&gt;&lt;br /&gt;Ao que parece, as primeiras áreas consideradas prioritárias a abranger pelo projecto, que irá reunir toda a informação cadastral existente relativa às propriedades, são as regiões florestais da cordilheira central e do Algarve.&lt;br /&gt;&lt;br /&gt;Acresce que os prazos oficiais apontam para a conclusão do SINERGIC em 2016.&lt;br /&gt;&lt;br /&gt;Será desta que teremos o país cadastrado na sua totalidade?  A ver vamos.&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4194726798732643561-7573227467193622762?l=geodivagar.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='text/html' href='http://geodivagar.blogspot.com/2009/04/sistema-nacional-de-exploracao-e-gestao.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4194726798732643561/posts/default/7573227467193622762'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4194726798732643561/posts/default/7573227467193622762'/><link rel='alternate' type='text/html' href='http://geodivagar.blogspot.com/2009/04/sistema-nacional-de-exploracao-e-gestao.html' title='Sistema Nacional de Exploração e Gestão da Informação (SINERGIC)'/><author><name>Luís Tavares</name><uri>http://www.blogger.com/profile/15564364674180846843</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4194726798732643561.post-2611794173904137358</id><published>2009-04-13T23:13:00.006+01:00</published><updated>2009-04-14T00:12:24.104+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Generalização'/><category scheme='http://www.blogger.com/atom/ns#' term='Simplificação'/><category scheme='http://www.blogger.com/atom/ns#' term='Douglas-Peucker'/><title type='text'>Simplificação/Generalização</title><content type='html'>&lt;div style="text-align: justify;"&gt;Em Cartografia, simplificação consiste numa metodologia entre outras para "generalização de informação geográfica", sendo a "simplificação de curvas" (&lt;span style="font-style: italic;"&gt;curve simplification&lt;/span&gt;) normalmente apelidada de "generalização de linhas" (&lt;span style="font-style: italic;"&gt;line generalization&lt;/span&gt;).&lt;br /&gt;&lt;br /&gt;É utilizada para simplificar a representação de rios, estradas, linhas de costa e outras entidades, quando é necessário produzir uma representação numa escala inferior à original.&lt;br /&gt;&lt;br /&gt;O recurso à sua utilização advém de vários factores:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;para remover detalhe desnecessário, por motivos de legibilidade cartográfica;&lt;/li&gt;&lt;li&gt;para poupar memória/espaço em disco;&lt;/li&gt;&lt;li&gt;para reduzir o tempo de impressão/visualização;&lt;/li&gt;&lt;/ul&gt;A formulação do problema consiste em a partir de uma curva com &lt;span style="font-style: italic;"&gt;n&lt;/span&gt; vértices (uma cadeia de segmentos, ou &lt;span style="font-style: italic;"&gt;polyline&lt;/span&gt;) gerar uma curva aproximada com &lt;span style="font-style: italic;"&gt;m&lt;/span&gt; vértices em que &lt;span style="font-style: italic;"&gt;m&lt;n&gt;&lt;/n&gt;&lt;/span&gt; menor que &lt;span style="font-style: italic;"&gt;n&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;Outro problema intimamente relacionado com este consiste em a partir de uma curva com &lt;span style="font-style: italic;"&gt;n&lt;/span&gt; vértices gerar outra segundo uma determinada tolerância de erro.&lt;br /&gt;&lt;br /&gt;O algoritmo mais comummente utilizado para simplificação de curvas é provavelmente o método heurístico conhecido por Douglas-Peucker.&lt;br /&gt;&lt;br /&gt;A descrição do algoritmo de Douglas-Peucker, bem como a descrição de outros métodos para simplificação de curvas, assim como uma recolha exaustiva de abordagens para simplificação de superfícies, pode ser vista em:&lt;a href="ftp://ftp.cs.cmu.edu/afs/cs/project/anim/ph/paper/multi97/release/heckbert/simp.pdf"&gt;&lt;/a&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;&lt;a href="ftp://ftp.cs.cmu.edu/afs/cs/project/anim/ph/paper/multi97/release/heckbert/simp.pdf"&gt;&lt;b&gt;Survey of Polygonal Surface Simplification Algorithms&lt;/b&gt;&lt;/a&gt;, Paul S. Heckbert and Michael Garland, tech. report, CS Dept., Carnegie Mellon U., 1997.&lt;br /&gt;&lt;br /&gt;Para uma abordagem mais prática, em &lt;a href="http://www.mapshaper.org/"&gt;http://www.mapshaper.org/&lt;/a&gt; é possível simplificar linhas através de três algoritmos, incluindo o citado Douglas-Peucker. Os dados de entrada são &lt;span style="font-style: italic;"&gt;shapefiles&lt;/span&gt; e a simplificação é realizada &lt;span style="font-style: italic;"&gt;online&lt;/span&gt;.&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4194726798732643561-2611794173904137358?l=geodivagar.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='text/html' href='http://geodivagar.blogspot.com/2009/04/simplificacaogeneralizacao.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4194726798732643561/posts/default/2611794173904137358'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4194726798732643561/posts/default/2611794173904137358'/><link rel='alternate' type='text/html' href='http://geodivagar.blogspot.com/2009/04/simplificacaogeneralizacao.html' title='Simplificação/Generalização'/><author><name>Luís Tavares</name><uri>http://www.blogger.com/profile/15564364674180846843</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4194726798732643561.post-8994307894544834884</id><published>2009-04-05T16:01:00.007+01:00</published><updated>2009-04-05T18:15:15.442+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Ranking'/><category scheme='http://www.blogger.com/atom/ns#' term='Geoespacial'/><category scheme='http://www.blogger.com/atom/ns#' term='Software Top 100'/><title type='text'>Ranking mundial de empresas que produzem software geoespacial</title><content type='html'>&lt;div style="text-align: justify;"&gt;&lt;br /&gt;O site &lt;a href="http://www.softwaretop100.org/"&gt;Software Top 100&lt;/a&gt; publica uma  listagem  das  maiores  empresas de  software  a nível mundial.&lt;br /&gt;&lt;br /&gt;Desse &lt;span style="font-style: italic;"&gt;ranking&lt;/span&gt; podemos extrair as empresas cujo &lt;span style="font-style: italic;"&gt;core business&lt;/span&gt; inclui uma forte componente geoespacial bem como outras que apesar de não se focarem exclusivamente nessa componente intervêm  também nessa área com grande relevância.&lt;br /&gt;&lt;br /&gt;- Autodesk, 13ª posição&lt;br /&gt;- Intergraph,  53ª posição&lt;br /&gt;- ESRI,  70ª posição&lt;br /&gt;- Pitney Bowes, 74ª posição&lt;br /&gt;- Bentley, 78ª posição&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4194726798732643561-8994307894544834884?l=geodivagar.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='text/html' href='http://geodivagar.blogspot.com/2009/04/ranking-mundial-de-empresas-que.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4194726798732643561/posts/default/8994307894544834884'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4194726798732643561/posts/default/8994307894544834884'/><link rel='alternate' type='text/html' href='http://geodivagar.blogspot.com/2009/04/ranking-mundial-de-empresas-que.html' title='Ranking mundial de empresas que produzem software geoespacial'/><author><name>Luís Tavares</name><uri>http://www.blogger.com/profile/15564364674180846843</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4194726798732643561.post-8644195200455749906</id><published>2009-04-04T17:24:00.004+01:00</published><updated>2009-04-04T17:37:23.568+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='EPSG'/><category scheme='http://www.blogger.com/atom/ns#' term='Sistemas de Referência'/><title type='text'>Códigos EPSG utilizados em Portugal</title><content type='html'>&lt;div style="text-align: justify;"&gt;&lt;br /&gt;Para quem precise de saber os identificadores associados aos sistemas de referência utilizados em Portugal, e não tenha vontade ou não queira andar à procura, seja em &lt;span style="font-style: italic;"&gt;sites&lt;/span&gt; nacionais (&lt;a href="http://www.igeo.pt/"&gt;IGP&lt;/a&gt;, por exemplo), seja em &lt;span style="font-style: italic;"&gt;sites&lt;/span&gt; internacionais (&lt;a href="http://www.epsg.org/"&gt;OGP Surveying &amp;amp; Positioning Committee&lt;/a&gt;, entre outros), deixo aqui a listagem:&lt;br /&gt;&lt;ul class="whs8" type="disc"&gt;&lt;li class="kadov-p"&gt; &lt;p class="whs6"&gt;EPSG: 27492 (Datum 73/ Hayford-Gauss) &lt;/p&gt; &lt;/li&gt;&lt;li class="kadov-p"&gt; &lt;p class="whs6"&gt;EPSG: 20790 (Datum Lisboa/ Coordenadas Militares)&lt;/p&gt; &lt;/li&gt;&lt;li class="kadov-p"&gt; &lt;p class="whs6"&gt;EPSG: 20791 (Datum Lisboa/ Hayford-Gauss) &lt;/p&gt; &lt;/li&gt;&lt;li class="kadov-p"&gt; &lt;p class="whs6"&gt;EPSG: 4326 (WGS 84/ Coordenadas Geográficas) &lt;/p&gt; &lt;/li&gt;&lt;li class="kadov-p"&gt; &lt;p class="whs6"&gt;EPSG: 4258 (ETRS89/ Coordenadas Geográficas) &lt;/p&gt; &lt;/li&gt;&lt;li class="kadov-p"&gt; &lt;p class="whs6"&gt;EPSG: 2191 (Datum Base SE - Porto Santo (Madeira) / UTM zona 28N)  &lt;/p&gt; &lt;/li&gt;&lt;li class="kadov-p"&gt; &lt;p class="whs6"&gt;EPSG: 2188 (Datum Observatório - Flores (Grupo Ocidental do  Arquipélago dos Açores) / UTM zona 25N) &lt;/p&gt; &lt;/li&gt;&lt;li class="kadov-p"&gt; &lt;p class="whs6"&gt;EPSG: 2189 /Datum Base SW - Graciosa (Grupo Central do Arquipélago  dos Açores) / UTM zona 26N &lt;/p&gt; &lt;/li&gt;&lt;li class="kadov-p"&gt; &lt;p class="whs6"&gt;EPSG: 2190 (Datum S. Braz - S. Miguel (Grupo Oriental do  Arquipélago dos Açores) / UTM zona 26N) &lt;/p&gt; &lt;/li&gt;&lt;li class="kadov-p"&gt; &lt;p class="whs6"&gt;EPSG: 3763 (PT-TM06/ETRS89) &lt;/p&gt; &lt;/li&gt;&lt;li class="kadov-p"&gt; &lt;p class="whs6"&gt;EPSG: 25829 (ETRS89 / UTM  zona  29N) &lt;/p&gt; &lt;/li&gt;&lt;li class="kadov-p"&gt; &lt;p class="whs6"&gt;EPSG: 32625 (WGS  84/ UTM  25N) &lt;/p&gt; &lt;/li&gt;&lt;li class="kadov-p"&gt; &lt;p class="whs6"&gt;EPSG: 32626 (WGS  84/ UTM  26N) &lt;/p&gt; &lt;/li&gt;&lt;li class="kadov-p"&gt; &lt;p class="whs6"&gt;EPSG: 32628 (WGS  84/ UTM  28N) &lt;/p&gt; &lt;/li&gt;&lt;li class="kadov-p"&gt; &lt;p class="whs6"&gt;EPSG: 32629 (WGS  84/ UTM  29N) &lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4194726798732643561-8644195200455749906?l=geodivagar.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='text/html' href='http://geodivagar.blogspot.com/2009/04/codigos-epsg-utilizados-em-portugal.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4194726798732643561/posts/default/8644195200455749906'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4194726798732643561/posts/default/8644195200455749906'/><link rel='alternate' type='text/html' href='http://geodivagar.blogspot.com/2009/04/codigos-epsg-utilizados-em-portugal.html' title='Códigos EPSG utilizados em Portugal'/><author><name>Luís Tavares</name><uri>http://www.blogger.com/profile/15564364674180846843</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4194726798732643561.post-4534469529153050883</id><published>2009-03-30T23:50:00.012+01:00</published><updated>2009-04-06T17:14:43.130+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Google Earth'/><category scheme='http://www.blogger.com/atom/ns#' term='WMS'/><category scheme='http://www.blogger.com/atom/ns#' term='Openlayers'/><category scheme='http://www.blogger.com/atom/ns#' term='Google Maps'/><title type='text'>WMS e Google: algumas considerações</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_oQKk6Kr6kiA/SdFQjd4OejI/AAAAAAAAABo/Hli_ohWu4rA/s1600-h/wms.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 274px;" src="http://3.bp.blogspot.com/_oQKk6Kr6kiA/SdFQjd4OejI/AAAAAAAAABo/Hli_ohWu4rA/s400/wms.jpg" alt="" id="BLOGGER_PHOTO_ID_5319121205147367986" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;É bem conhecido o facto de o Google Earth permitir aceder a serviços &lt;span style="font-style: italic;"&gt;WMS&lt;/span&gt;, apesar de o respectivo menu estar bem escondido.&lt;br /&gt;&lt;br /&gt;Outra questão bem diferente, mas particularmente interessante seria aceder às &lt;span style="font-style: italic;"&gt;tiles&lt;/span&gt; do Google Earth, ou Maps, através de um serviço &lt;span style="font-style: italic;"&gt;WMS&lt;/span&gt;. Apesar de, tanto quanto se sabe, tal não ser possível, ou seja, a existência de um sub-domínio de &lt;span style="font-style: italic;"&gt;google.com&lt;/span&gt;  através do qual o cliente solicite directamente ao servidor pedidos do tipo &lt;span style="font-style: italic;"&gt;OGC WMS GetMap&lt;/span&gt; e &lt;span style="font-style: italic;"&gt;OGC WMS GetCapabilities &lt;/span&gt;(pelo  menos estes), resta-nos a possibilidade de utilizar as &lt;span style="font-style: italic;"&gt;API&lt;/span&gt; disponibilizadas pela Google, com todas as limitações daí inerentes.&lt;br /&gt;&lt;br /&gt;Alternativamente, é possível através de uma &lt;span style="font-style: italic;"&gt;API&lt;/span&gt; independente (&lt;span style="font-style: italic;"&gt;Openlayers&lt;/span&gt;, por exemplo) aceder às &lt;span style="font-style: italic;"&gt;tiles&lt;/span&gt; do &lt;span style="font-style: italic;"&gt;google&lt;/span&gt;, embora não explicitamente segundo um serviço &lt;span style="font-style: italic;"&gt;WMS&lt;/span&gt;. Acresce apenas a necessidade de uma chave de registo da &lt;span style="font-style: italic;"&gt;Google Maps API&lt;/span&gt;, a qual ficará associada ao &lt;span style="font-style: italic;"&gt;site&lt;/span&gt; onde se pretende utilizar a respectiva &lt;span style="font-style: italic;"&gt;API&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;De forma a melhor ilustrar aquilo a que nos estamos a referir, deixo aqui este pequeno exemplo de selecção de diferentes &lt;span style="font-style: italic;"&gt;layers&lt;/span&gt; do &lt;span style="font-style: italic;"&gt;Google Maps&lt;/span&gt; utilizando &lt;span style="font-style: italic;"&gt;Openlayers&lt;/span&gt;. &lt;a href="http://geomatica.no.sapo.pt/layers/glayers.html"&gt;LINK&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4194726798732643561-4534469529153050883?l=geodivagar.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='text/html' href='http://geodivagar.blogspot.com/2009/03/wms-e-google-algumas-consideracoes.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4194726798732643561/posts/default/4534469529153050883'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4194726798732643561/posts/default/4534469529153050883'/><link rel='alternate' type='text/html' href='http://geodivagar.blogspot.com/2009/03/wms-e-google-algumas-consideracoes.html' title='WMS e Google: algumas considerações'/><author><name>Luís Tavares</name><uri>http://www.blogger.com/profile/15564364674180846843</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_oQKk6Kr6kiA/SdFQjd4OejI/AAAAAAAAABo/Hli_ohWu4rA/s72-c/wms.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4194726798732643561.post-7483317151511886369</id><published>2009-02-28T03:21:00.010Z</published><updated>2009-03-19T20:35:38.854Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><category scheme='http://www.blogger.com/atom/ns#' term='UTM'/><category scheme='http://www.blogger.com/atom/ns#' term='Applets'/><title type='text'>Sistema de Coordenadas UTM (Applets)</title><content type='html'>&lt;div style="text-align: justify;"&gt;&lt;a href="http://geomatica.no.sapo.pt/utm/utm.htm"&gt;Aqui&lt;/a&gt; estão dois Applets em Java os quais transformam coordenadas geográficas em coordenadas planas UTM, bem como efectuam a transformação inversa. Foi utilizada a classe &lt;a href="http://www.ibm.com/developerworks/java/library/j-coordconvert/"&gt;CoordinateConversion&lt;/a&gt; de &lt;a href="http://www.ibm.com/developerworks/java/library/j-coordconvert/#author"&gt;Sami Salkosuo&lt;/a&gt;, Application Architect, IBM.　&lt;br /&gt;&lt;br /&gt;Encontram-se &lt;a href="http://geomatica.no.sapo.pt/utm/utm.htm"&gt;aqui&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;(É necessário ter instalado o&lt;em&gt; &lt;a href="http://java.com/en/download/manual.jsp"&gt;Java Runtime Environment&lt;/a&gt;)&lt;/em&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4194726798732643561-7483317151511886369?l=geodivagar.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='text/html' href='http://geodivagar.blogspot.com/2009/02/sistema-de-coordenadas-utm-applets.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4194726798732643561/posts/default/7483317151511886369'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4194726798732643561/posts/default/7483317151511886369'/><link rel='alternate' type='text/html' href='http://geodivagar.blogspot.com/2009/02/sistema-de-coordenadas-utm-applets.html' title='Sistema de Coordenadas UTM (Applets)'/><author><name>Luís Tavares</name><uri>http://www.blogger.com/profile/15564364674180846843</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4194726798732643561.post-3381135031414824273</id><published>2009-02-03T01:29:00.009Z</published><updated>2009-02-06T05:25:49.532Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='3D'/><category scheme='http://www.blogger.com/atom/ns#' term='Google Sketchup'/><category scheme='http://www.blogger.com/atom/ns#' term='Google Earth'/><category scheme='http://www.blogger.com/atom/ns#' term='PhotoSynth'/><category scheme='http://www.blogger.com/atom/ns#' term='PhotoSketch'/><title type='text'>PhotoSketch = Sketchup + PhotoSynth</title><content type='html'>&lt;div style="text-align: justify;"&gt;O &lt;a href="http://sketchup.google.com/"&gt;Sketchup&lt;/a&gt; é a ferramenta, por excelência, utilizada na geração de modelos tridimensionais para incorporação no Google Earth. Utiliza a projecção perspectiva de forma a auxiliar o utilizador na construção de um modelo 3D a partir de uma única imagem.&lt;br /&gt;&lt;br /&gt;O PhotoSketch é descrito como um cruzamento entre o Sketchup e o &lt;a href="http://photosynth.net/"&gt;PhotoSynth&lt;/a&gt;, na medida em que utiliza múltiplas imagens na criação de modelos com textura, através do reconhecimento automático de elementos correspondentes de forma a orientar no espaço as várias imagens. Os elementos correspondentes são reconhecidos através do algoritmo &lt;a href="http://www.cs.ubc.ca/%7Elowe/papers/ijcv04.pdf"&gt;SIFT&lt;/a&gt; (Scale Invariant Feature Transform), sendo esse reconhecimento refinado através da metodologia RANSAC. Assim, obtém-se a orientação relativa entre imagens consecutivas. Depois de todas as imagens se encontrarem orientadas é efectuado um ajustamento por mínimos quadrados de forma a obter uma solução final consistente.&lt;br /&gt;&lt;br /&gt;Ainda não existe qualquer versão deste &lt;span style="font-style: italic;"&gt;software&lt;/span&gt;, nem qualquer artigo descrevendo o mesmo, mas existe uma apresentação em &lt;a href="http://video.google.com/videoplay?docid=-4452669873579375047"&gt;vídeo&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;O coordenador do projecto, &lt;a href="http://www-cs.ccny.cuny.edu/%7Ewolberg/"&gt;George Wolberg&lt;/a&gt;,  estabelece a comparação entre o PhotoSketch  e as técnicas convencionais oriundas da Fotogrametria, as quais caracteriza como manuais, lentas e de difícil realização com várias imagens.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://jcmcglone.wordpress.com/about/"&gt;J. Chris McGlone&lt;/a&gt; o qual é a fonte principal deste &lt;span style="font-style: italic;"&gt;post&lt;/span&gt;, refere em tom de contra argumentação que quando estamos a realizar um ajustamento por mínimos quadrados (o qual, neste contexto, foi desenvolvido entre a comunidade de fotogrametristas) estamos &lt;span style="font-style: italic;"&gt;de facto&lt;/span&gt; nos domínios da Fotogrametria.&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4194726798732643561-3381135031414824273?l=geodivagar.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='text/html' href='http://geodivagar.blogspot.com/2009/02/photosketch-sketchup-photosynth.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4194726798732643561/posts/default/3381135031414824273'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4194726798732643561/posts/default/3381135031414824273'/><link rel='alternate' type='text/html' href='http://geodivagar.blogspot.com/2009/02/photosketch-sketchup-photosynth.html' title='PhotoSketch = Sketchup + PhotoSynth'/><author><name>Luís Tavares</name><uri>http://www.blogger.com/profile/15564364674180846843</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4194726798732643561.post-6432889655021196374</id><published>2009-01-30T17:49:00.005Z</published><updated>2009-01-30T18:14:17.594Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Freeport'/><category scheme='http://www.blogger.com/atom/ns#' term='ZPE'/><category scheme='http://www.blogger.com/atom/ns#' term='ICN'/><title type='text'>ZPE do Estuário do Tejo</title><content type='html'>&lt;div style="text-align: justify;"&gt;Quer dizer, redefiniram os limites da ZPE através do decreto-lei 140/2002, de forma a permitir a construção do BICHO, mas esqueceram-se de alterar as cartas.&lt;br /&gt;&lt;br /&gt;Ou seja, segundo os ficheiros disponibilizados &lt;span style="font-style: italic;"&gt;online&lt;/span&gt; pelo ICN, o Freeport continua, na mesma, dentro da ZPE...Os técnicos do ICN andam a dormir? Ou não sabem modificar um polígono?&lt;br /&gt;&lt;br /&gt;Já agora, os ficheiros das ZPE nacionais, em formato &lt;span style="font-style: italic;"&gt;shapefile,&lt;/span&gt; encontram-se aqui &lt;a href="http://www.icn.pt/destaques/destaques_anexos/Limite_zpes.zip"&gt;ZIP&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4194726798732643561-6432889655021196374?l=geodivagar.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='text/html' href='http://geodivagar.blogspot.com/2009/01/zpe-do-estuario-do-tejo.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4194726798732643561/posts/default/6432889655021196374'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4194726798732643561/posts/default/6432889655021196374'/><link rel='alternate' type='text/html' href='http://geodivagar.blogspot.com/2009/01/zpe-do-estuario-do-tejo.html' title='ZPE do Estuário do Tejo'/><author><name>Luís Tavares</name><uri>http://www.blogger.com/profile/15564364674180846843</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4194726798732643561.post-1879082602574586605</id><published>2009-01-30T17:39:00.002Z</published><updated>2009-01-30T17:42:22.347Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Freeport'/><category scheme='http://www.blogger.com/atom/ns#' term='ZPE'/><category scheme='http://www.blogger.com/atom/ns#' term='Localização'/><title type='text'>Mais ZPE: A localização do bicho...</title><content type='html'>&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;iframe marginheight="0" marginwidth="0" src="http://maps.google.com/maps/ms?ie=UTF8&amp;amp;hl=en&amp;amp;msa=0&amp;amp;msid=118435773069605093127.000461a8ac6a52d3b67c5&amp;amp;ll=38.751941,-8.940747&amp;amp;spn=0.26748,0.356486&amp;amp;t=k&amp;amp;output=embed&amp;amp;s=AARTsJoMHe-lAuq520yjhQ5nPkW4OMKIsw" frameborder="0" height="350" scrolling="no" width="425"&gt;&lt;/iframe&gt;&lt;br /&gt;&lt;small&gt;&lt;a href="http://maps.google.com/maps/ms?ie=UTF8&amp;amp;hl=en&amp;amp;msa=0&amp;amp;msid=118435773069605093127.000461a8ac6a52d3b67c5&amp;amp;ll=38.751941,-8.940747&amp;amp;spn=0.26748,0.356486&amp;amp;t=k&amp;amp;source=embed" style="color: rgb(0, 0, 255); text-align: left;"&gt;View Larger Map&lt;/a&gt;&lt;/small&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4194726798732643561-1879082602574586605?l=geodivagar.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='text/html' href='http://geodivagar.blogspot.com/2009/01/mais-zpe-localizacao-do-bicho.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4194726798732643561/posts/default/1879082602574586605'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4194726798732643561/posts/default/1879082602574586605'/><link rel='alternate' type='text/html' href='http://geodivagar.blogspot.com/2009/01/mais-zpe-localizacao-do-bicho.html' title='Mais ZPE: A localização do bicho...'/><author><name>Luís Tavares</name><uri>http://www.blogger.com/profile/15564364674180846843</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4194726798732643561.post-3809900540367942542</id><published>2009-01-30T00:14:00.004Z</published><updated>2009-01-30T03:40:45.847Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Freeport'/><category scheme='http://www.blogger.com/atom/ns#' term='ZPE'/><title type='text'>ZPE &amp; FREEPORT</title><content type='html'>&lt;div style="TEXT-ALIGN: justify"&gt;&lt;span class="ms" jsdisplay="!$this.errMsg  $this.missingPrefs" jsskip="1" jseval="insertModContent(this,$this);" jstcache="144"&gt;A famosa Zona de Protecção Especial (ZPE). Façam &lt;em&gt;zoom&lt;/em&gt; e procurem o FREEPORT...Uma espécie de "Onde está o Wally?". Escusado será dizer que irão encontrar muitos &lt;em&gt;freeportzinhos&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;&lt;iframe marginwidth="0" marginheight="0" src="http://maps.google.com/maps/ms?ie=UTF8&amp;amp;hl=en&amp;amp;t=k&amp;amp;s=AARTsJo-wEnXuEmSiRTuhUWhnAcv0bLeNQ&amp;amp;msa=0&amp;amp;msid=118435773069605093127.000461a7d6739233acf3f&amp;amp;ll=38.824038,-8.913673&amp;amp;spn=0.374466,0.583649&amp;amp;z=10&amp;amp;output=embed" frameborder="0" width="425" scrolling="no" height="350"&gt;&lt;/iframe&gt;&lt;br /&gt;&lt;small&gt;&lt;a style="COLOR: rgb(0,0,255); TEXT-ALIGN: left" href="http://maps.google.com/maps/ms?ie=UTF8&amp;amp;hl=en&amp;amp;t=k&amp;amp;msa=0&amp;amp;msid=118435773069605093127.000461a7d6739233acf3f&amp;amp;ll=38.824038,-8.913673&amp;amp;spn=0.374466,0.583649&amp;amp;z=10&amp;amp;source=embed"&gt;View Larger Map&lt;/a&gt;&lt;/small&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4194726798732643561-3809900540367942542?l=geodivagar.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='text/html' href='http://geodivagar.blogspot.com/2009/01/zpe-freeport_30.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4194726798732643561/posts/default/3809900540367942542'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4194726798732643561/posts/default/3809900540367942542'/><link rel='alternate' type='text/html' href='http://geodivagar.blogspot.com/2009/01/zpe-freeport_30.html' title='ZPE &amp; FREEPORT'/><author><name>Luís Tavares</name><uri>http://www.blogger.com/profile/15564364674180846843</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4194726798732643561.post-5200295130173784102</id><published>2009-01-29T18:24:00.002Z</published><updated>2009-01-30T17:33:19.070Z</updated><title type='text'>Stonehenge, servia para quê? A dúvida perdura no tempo...</title><content type='html'>&lt;iframe src="http://sketchup.google.com/3dwarehouse/mini?mid=6adbb97cb78b2b8e153050c10dfa4b4d" marginheight="0" marginwidth="0" frameborder="0" height="300" scrolling="no" width="400"&gt;&lt;/iframe&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4194726798732643561-5200295130173784102?l=geodivagar.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='text/html' href='http://geodivagar.blogspot.com/2009/01/stonehenge.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4194726798732643561/posts/default/5200295130173784102'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4194726798732643561/posts/default/5200295130173784102'/><link rel='alternate' type='text/html' href='http://geodivagar.blogspot.com/2009/01/stonehenge.html' title='Stonehenge, servia para quê? A dúvida perdura no tempo...'/><author><name>Luís Tavares</name><uri>http://www.blogger.com/profile/15564364674180846843</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4194726798732643561.post-7285026277593947978</id><published>2009-01-20T14:58:00.009Z</published><updated>2009-01-21T13:15:10.211Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Licenciamento Municipal'/><category scheme='http://www.blogger.com/atom/ns#' term='Levantamentos Topográficos'/><title type='text'>Levantamentos Topográficos e Licenciamento Municipal</title><content type='html'>&lt;div style="text-align: justify;"&gt;&lt;br /&gt;Começa a ser frequente as autarquias formalizarem, através de normas, os requisitos  a que estão  sujeitos  os levantamentos topográficos, assim como as plantas de implantação e de síntese, no âmbito dos pedidos de licenciamento de obras particulares e de projectos de loteamento.&lt;br /&gt;&lt;br /&gt;Deixamos aqui alguns exemplos:&lt;br /&gt;&lt;br /&gt;Entrega de Plantas de Implantação e Plantas de Síntese em Formato Digital - Normas Técnicas (CM Sabugal) &lt;a href="http://web.cm-sabugal.pt/files/conteudos/apoio_ao_municipe/consultas_online/regulamentos/obras_particulares/normas_tecnicas_pra_entrega_de_plantas_implantacao_e_sintese.pdf"&gt;PDF&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Alterações ao Regime Jurídico de Urbanização e Edificação - Requisitos dos Levantamentos Topográficos (CM Oliveira do Bairro) &lt;a href="http://www.sig.cm-olb.pt/website/PDF/GESTAOURBANISTICA/ALTERACOES_RJUE.pdf?service=ADENSAMENTOREDE&amp;amp;ActiveLayer=1"&gt;PDF&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Normas Técnicas para a Execução de Levantamentos Topográficos (CM Cascais) &lt;a href="http://www.cm-cascais.pt/NR/rdonlyres/A52A2F1D-0547-49DC-875B-6B2ADF54903F/5494/DURE1Anexo1NormasTcnicasparaaExecuodeLevantamentos.pdf"&gt;PDF&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Normas para formatação de ficheiros CAD para levantamentos topográficos e cartografia a utilizar nos projectos de loteamento e de obras de urbanização para posterior implementação em ambiente SIG (CM Lisboa) &lt;a href="http://ulisses.cm-lisboa.pt/data/002/0015/rmuel/anexo3.pdf"&gt;PDF&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Nota: claro está que este tipo de normas tem como principal objectivo permitir que as autarquias obtenham cartografia digital actualizada a custo zero. Ou seja, o encargo é, em ultima análise, do dono da obra, o responsável pela elaboração do Levantamento Topográfico. É mau para o dono da obra e para as empresas de produção cartográfica. Para não falar nas novas exigências que se colocam às empresas de topografia.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4194726798732643561-7285026277593947978?l=geodivagar.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='text/html' href='http://geodivagar.blogspot.com/2009/01/comea-ser-frequente-as-autarquias.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4194726798732643561/posts/default/7285026277593947978'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4194726798732643561/posts/default/7285026277593947978'/><link rel='alternate' type='text/html' href='http://geodivagar.blogspot.com/2009/01/comea-ser-frequente-as-autarquias.html' title='Levantamentos Topográficos e Licenciamento Municipal'/><author><name>Luís Tavares</name><uri>http://www.blogger.com/profile/15564364674180846843</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4194726798732643561.post-6852388009197519096</id><published>2009-01-14T23:19:00.005Z</published><updated>2009-01-16T02:06:30.518Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Cartografia Temática'/><category scheme='http://www.blogger.com/atom/ns#' term='Simbologia'/><title type='text'>Algumas referências sobre elaboração de Cartografia Temática</title><content type='html'>&lt;div style="text-align: justify;"&gt;&lt;br /&gt;Recomendações para a Organização dos Mapas Digitais de Ruído (Agência Portuguesa do Ambiente) - &lt;a href="http://www.google.pt/url?sa=t&amp;amp;source=web&amp;amp;ct=res&amp;amp;cd=1&amp;amp;url=http%3A%2F%2Fwww.apambiente.pt%2Fpoliticasambiente%2FRuido%2FNotasTecnicas%2FDocuments%2FRecomenda%25C3%25A7%25C3%25B5esMapasDigitaisJun08.pdf&amp;amp;ei=43JuSfe3OpWN-gbn0MWABw&amp;amp;usg=AFQjCNGXmrai78lfZHuaE_VJSHoivcRafQ&amp;amp;sig2=2ULrfJLuawRLZQhl5q0JuQ"&gt;&lt;span style="font-style: italic;"&gt;pdf&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Cartografia digital de zonas de caça (ZC) - normas para a sua elaboração (Autoridade Florestal Nacional) - &lt;a style="font-style: italic;" href="http://www.google.pt/url?sa=t&amp;amp;source=web&amp;amp;ct=res&amp;amp;cd=2&amp;amp;url=http%3A%2F%2Fwww.afn.min-agricultura.pt%2Fportal%2Fcaca%2Fresource%2Fficheiros%2FCartograf-Digital-Normas-ZC.pdf&amp;amp;ei=NnVuSfCDIpiq-gaZkrCGBw&amp;amp;usg=AFQjCNELs_hUc2IM-FQQhtp-J-Bxxv5FLw&amp;amp;sig2=rJ0wXplK2ItTRc9Bu3fsAQ"&gt;pdf&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Simbologia e Infografia dos Planos Regionais de Ordenamento do Território (DGOTDU) - &lt;a href="http://www.google.pt/url?sa=t&amp;amp;source=web&amp;amp;ct=res&amp;amp;cd=2&amp;amp;url=http%3A%2F%2Fwww.dgotdu.pt%2Fprot-continente%2Fdoc%255C2_Simbologia%2520e%2520Infografia.pdf&amp;amp;ei=YXduSZCPJsOh-gaDqdCdBw&amp;amp;usg=AFQjCNFFiVe9zNhWXr6tHfN_eHF0rDvctw&amp;amp;sig2=jLqT77Kb3ws66uzhe36_Yw"&gt;&lt;span style="font-style: italic;"&gt;pdf&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Simbologia e Sistematização Gráfica a Utilizar nos Planos Directores Municipais (DGOTDU) - &lt;a style="font-style: italic;" href="http://www.google.pt/url?sa=t&amp;amp;source=web&amp;amp;ct=res&amp;amp;cd=1&amp;amp;url=http%3A%2F%2Fwww.dgotdu.pt%2FPresentationLayer%2FResourcesUser%2FDGOTDU%2FNormasTecnicas%2Fsimbologia_PDM_Site2.pdf&amp;amp;ei=YXduSZCPJsOh-gaDqdCdBw&amp;amp;usg=AFQjCNESJMBgB427WnMyP73ByUIla1PLSQ&amp;amp;sig2=MSX7t7EdZCnmI2wY4f-bDA"&gt;pdf&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4194726798732643561-6852388009197519096?l=geodivagar.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='text/html' href='http://geodivagar.blogspot.com/2009/01/algumas-referncias-sobre-cartografia.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4194726798732643561/posts/default/6852388009197519096'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4194726798732643561/posts/default/6852388009197519096'/><link rel='alternate' type='text/html' href='http://geodivagar.blogspot.com/2009/01/algumas-referncias-sobre-cartografia.html' title='Algumas referências sobre elaboração de Cartografia Temática'/><author><name>Luís Tavares</name><uri>http://www.blogger.com/profile/15564364674180846843</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4194726798732643561.post-15184693999872901</id><published>2009-01-13T19:28:00.004Z</published><updated>2009-01-14T22:46:34.142Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Google Sketchup'/><category scheme='http://www.blogger.com/atom/ns#' term='Ruby'/><title type='text'>Ruby</title><content type='html'>&lt;div style="text-align: justify;"&gt;O Ruby é uma linguagem de programação dinâmica e open-source, de origem japonesa, mencionada aqui por ser utilizada no software Google Sketchup, para desenvolvimento de scripts.&lt;br /&gt;&lt;br /&gt;Na página de downloads do Sketchup existe uma secção dedicada ao desenvolvimento de scripts em Ruby, &lt;a href="http://sketchup.google.com/download/rubyscripts.html"&gt;http://sketchup.google.com/download/rubyscripts.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Relativamente à linguagem, propriamente dita, deixo duas referências que poderão ser úteis.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.digilife.be/quickreferences/QRC/Ruby%20Language%20QuickRef.pdf"&gt;Ruby Language QuickRef.pdf&lt;/a&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;a href="http://www.digilife.be/quickreferences/QRC/Ruby%20Library%20QuickRef.pdf"&gt;Ruby Library QuickRef.pdf&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4194726798732643561-15184693999872901?l=geodivagar.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='text/html' href='http://geodivagar.blogspot.com/2009/01/ruby.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4194726798732643561/posts/default/15184693999872901'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4194726798732643561/posts/default/15184693999872901'/><link rel='alternate' type='text/html' href='http://geodivagar.blogspot.com/2009/01/ruby.html' title='Ruby'/><author><name>Luís Tavares</name><uri>http://www.blogger.com/profile/15564364674180846843</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4194726798732643561.post-4401632712513546656</id><published>2009-01-13T00:12:00.004Z</published><updated>2009-01-13T00:22:13.498Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Shape2Earth'/><category scheme='http://www.blogger.com/atom/ns#' term='Google Maps'/><title type='text'>Google Maps</title><content type='html'>Exemplo de Integração de Dados: Área Protegida de Sintra-Cascais&lt;br /&gt;&lt;br /&gt;&lt;iframe marginheight="0" marginwidth="0" src="http://maps.google.com/maps/ms?hl=pt-PT&amp;amp;ie=UTF8&amp;amp;t=h&amp;amp;s=AARTsJowvQsJqxXqooGuTU1-IdR3qqlSFw&amp;amp;msa=0&amp;amp;msid=118435773069605093127.00045e1de29f8ba590a9b&amp;amp;ll=38.810821,-9.435883&amp;amp;spn=0.374533,0.583649&amp;amp;z=10&amp;amp;output=embed" frameborder="0" height="350" scrolling="no" width="425"&gt;&lt;/iframe&gt;&lt;br /&gt;&lt;small&gt;&lt;a href="http://maps.google.com/maps/ms?hl=pt-PT&amp;amp;ie=UTF8&amp;amp;t=h&amp;amp;msa=0&amp;amp;msid=118435773069605093127.00045e1de29f8ba590a9b&amp;amp;ll=38.810821,-9.435883&amp;amp;spn=0.374533,0.583649&amp;amp;z=10&amp;amp;source=embed" style="color: rgb(0, 0, 255); text-align: left;"&gt;Ver mapa maior&lt;/a&gt;&lt;/small&gt;&lt;br /&gt;&lt;br /&gt;Realizado com &lt;a href="http://www.mapwindow.org"&gt;MapWindow&lt;/a&gt; e com o plug-in &lt;a href="http://shape2earth.com/default.aspx"&gt;Shape2Earth&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4194726798732643561-4401632712513546656?l=geodivagar.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='text/html' href='http://geodivagar.blogspot.com/2009/01/google-maps.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4194726798732643561/posts/default/4401632712513546656'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4194726798732643561/posts/default/4401632712513546656'/><link rel='alternate' type='text/html' href='http://geodivagar.blogspot.com/2009/01/google-maps.html' title='Google Maps'/><author><name>Luís Tavares</name><uri>http://www.blogger.com/profile/15564364674180846843</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4194726798732643561.post-96446962104468229</id><published>2009-01-08T19:50:00.009Z</published><updated>2009-03-30T23:47:27.187+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><title type='text'>"Thinking in Java"</title><content type='html'>&lt;div style="text-align: justify;"&gt;Para quem queira aprender a programar a sério em Java aconselho o livro "Thinking in Java" do Bruce Eckell. Quase que se lê como um romance. E abrange grande parte da linguagem, desde os conceitos básicos de classe e objecto até à programação distribuída, sempre tendo em mente a construção de software fiável e reutilizável. No entanto, para tirar o máximo de partido do livro, convém ter noções de programação (C ou VB, por exemplo). No meu caso, as duas cadeiras de programação que tive na faculdade (uma de programação imperativa em C, e outra de programação com classes em Java) foram de bastante utilidade.&lt;br /&gt;O livro encontra-se disponível &lt;a href="http://www.mindview.net/Books"&gt;aqui&lt;/a&gt;, juntamento com outros do mesmo autor.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4194726798732643561-96446962104468229?l=geodivagar.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='text/html' href='http://geodivagar.blogspot.com/2009/01/java.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4194726798732643561/posts/default/96446962104468229'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4194726798732643561/posts/default/96446962104468229'/><link rel='alternate' type='text/html' href='http://geodivagar.blogspot.com/2009/01/java.html' title='&quot;Thinking in Java&quot;'/><author><name>Luís Tavares</name><uri>http://www.blogger.com/profile/15564364674180846843</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4194726798732643561.post-3851011414735956980</id><published>2009-01-08T18:27:00.002Z</published><updated>2009-01-09T17:56:02.420Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='KML'/><category scheme='http://www.blogger.com/atom/ns#' term='Google Sketchup'/><title type='text'>Sketchup</title><content type='html'>&lt;div style="text-align: justify;"&gt;O Sketchup sempre foi bastante negligenciado pela geo-comunidade ao contrário do que acontece, por exemplo, nos domínios da arquitectura e mesmo do design gráfico. Na realidade foi a primeira ferramenta a permitir exportar modelos 3D para KML. Aliás, essa foi uma das razões da aquisição da @Last Software (empresa criadora do Sketchup) pela Google.&lt;br /&gt;&lt;br /&gt;As versões gratuitas não permitem importar &lt;span style="font-style: italic;"&gt;shapefiles&lt;/span&gt;, no entanto existe um plug-in para a versão 5, criado com esse propósito. O download está disponível em  &lt;a href="http://download.sketchup.com/downloads/downloads/plugins/google/InstallSketchUp5Shape-002EN.exe"&gt;Download&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4194726798732643561-3851011414735956980?l=geodivagar.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='text/html' href='http://geodivagar.blogspot.com/2009/01/sketchup.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4194726798732643561/posts/default/3851011414735956980'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4194726798732643561/posts/default/3851011414735956980'/><link rel='alternate' type='text/html' href='http://geodivagar.blogspot.com/2009/01/sketchup.html' title='Sketchup'/><author><name>Luís Tavares</name><uri>http://www.blogger.com/profile/15564364674180846843</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4194726798732643561.post-5867614536688164685</id><published>2009-01-07T21:53:00.005Z</published><updated>2009-01-09T19:41:57.076Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Google Earth'/><category scheme='http://www.blogger.com/atom/ns#' term='MapWindow'/><category scheme='http://www.blogger.com/atom/ns#' term='EPSG'/><category scheme='http://www.blogger.com/atom/ns#' term='PROJ'/><title type='text'>Sistemas de Coordenadas no MapWindow GIS</title><content type='html'>&lt;div style="text-align: justify;"&gt;A maioria das ferramentas de SIG open-source recorre à biblioteca PROJ, no que diz respeito à definição e transformação de sistemas de coordenadas.  No entanto,  para efectuar transformações que impliquem uma mudança de Datum, é necessário que o software disponha não só dos parâmetros de definição do sistema, como também dos parâmetros de transformação. Relativamente aos primeiros, a biblioteca PROJ é distribuída com os parâmetros associados aos códigos EPSG, sendo no entanto reduzido o número de códigos EPSG que tenham parâmetros de transformação associados. Assim, é necessário definir esses parâmetros de forma a que o resultado seja o esperado.&lt;br /&gt;&lt;br /&gt;O MapWindow, ao utilizar a biblioteca PROJ, não é excepção  e como  tal vamos descrever uma forma de efectuar transformações de coordenadas no MapWindow  que envolvam mudança de Datum.&lt;br /&gt;&lt;br /&gt;Imaginemos que temos uma &lt;span style="font-style: italic;"&gt;shapefile&lt;/span&gt; no sistema de coordenadas cartográficas Hayford-Gauss Datum Lisboa Militar e que queremos mudar o sistema para coordenadas geográficas WGS-84 (transformação muito útil para carregar dados no Google Earth).&lt;br /&gt;&lt;br /&gt;1-Vamos criar um ficheiro com extensão &lt;span style="font-style: italic;"&gt;prj,&lt;/span&gt; com o mesmo nome e na mesma directoria da &lt;span style="font-style: italic;"&gt;shapefile&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;2-Seguidamente, copiamos para o ficheiro &lt;span style="font-style: italic;"&gt;prj&lt;/span&gt; o seguinte código:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;PROJCS["Datum_Lx_Hayford_Gauss_IGeoE",&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;GEOGCS["GCS_Datum_Lisboa_Hayford", DATUM["D_Datum_Lisboa_Hayford",&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;SPHEROID["International_1924", 6378388.0, 297.0],&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;TOWGS84[-282.1,-72.2,119.95,-1.53,0.14,-0.89,-4.5]],&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;PRIMEM["Greenwich", 0.0],&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;UNIT["degree", 0.017453292519943295],&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;AXIS["Lon", EAST],  &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;AXIS["Lat", NORTH]],&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;PROJECTION["Transverse_Mercator"],&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;PARAMETER["central_meridian", -8.13190611111111],&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;PARAMETER["latitude_of_origin", 39.6666666666667], &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;PARAMETER["scale_factor", 1.0],&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;PARAMETER["false_easting", 200000.0],&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;PARAMETER["false_northing", 300000.0], UNIT["m", 1.0], AXIS["x", EAST],  AXIS["y", NORTH]]&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;Notem a existência do parâmetro TOWGS84 o qual raramente consta dos parâmetros EPSG. É este parâmetro que permite efectuar a mudança de Datum (neste caso recorrendo a uma transformação espacial de semelhança utilizando os parâmetros do Instituto Geográfico Português)&lt;br /&gt;&lt;br /&gt;3-Abrimos o MapWindow e depois de activarmos o &lt;span style="font-style: italic;"&gt;Plugin&lt;/span&gt; GISTOOLS selecionamos a opção Vector &gt;&gt; Reproject a Shapefile&lt;br /&gt;&lt;br /&gt;4- Preencher o Menu da seguinte forma:&lt;br /&gt;&lt;br /&gt;Category: Geographic Coordinate Systems&lt;br /&gt;&lt;br /&gt;Group: World&lt;br /&gt;&lt;br /&gt;Name: WGS 1984&lt;br /&gt;&lt;br /&gt;5- Agora basta premir OK e a transformação  é efectuada.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Nota: O MapWindow internamente foi associar ao nosso ficheiro inicial uma &lt;span style="font-style: italic;"&gt;Custom Projection&lt;/span&gt;. Refira-se que a única forma de associar uma &lt;span style="font-style: italic;"&gt;Custom Projection&lt;/span&gt; no MapWindow é através do ficheiro &lt;span style="font-style: italic;"&gt;prj&lt;/span&gt;, pelo menos até à versão 4.6&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4194726798732643561-5867614536688164685?l=geodivagar.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='text/html' href='http://geodivagar.blogspot.com/2009/01/sistemas-de-coordenadas-no-mapwindow.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4194726798732643561/posts/default/5867614536688164685'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4194726798732643561/posts/default/5867614536688164685'/><link rel='alternate' type='text/html' href='http://geodivagar.blogspot.com/2009/01/sistemas-de-coordenadas-no-mapwindow.html' title='Sistemas de Coordenadas no MapWindow GIS'/><author><name>Luís Tavares</name><uri>http://www.blogger.com/profile/15564364674180846843</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4194726798732643561.post-1667189226043653466</id><published>2009-01-07T21:39:00.001Z</published><updated>2009-01-08T18:41:08.189Z</updated><title type='text'>Ano Novo - Blog Novo</title><content type='html'>&lt;div style="text-align: justify;"&gt;Porque não criar mais um Blog direccionado à Geo-Comunidade? Apesar de já haver bastantes por aí, parece-me que nunca é de mais...&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4194726798732643561-1667189226043653466?l=geodivagar.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='text/html' href='http://geodivagar.blogspot.com/2009/01/ano-novo-blog-novo.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4194726798732643561/posts/default/1667189226043653466'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4194726798732643561/posts/default/1667189226043653466'/><link rel='alternate' type='text/html' href='http://geodivagar.blogspot.com/2009/01/ano-novo-blog-novo.html' title='Ano Novo - Blog Novo'/><author><name>Luís Tavares</name><uri>http://www.blogger.com/profile/15564364674180846843</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>
