{"id":3639,"date":"2010-06-22T20:16:19","date_gmt":"2010-06-22T23:16:19","guid":{"rendered":"http:\/\/www.fernandoquadro.com.br\/html\/?p=3639"},"modified":"2018-08-08T04:21:19","modified_gmt":"2018-08-08T07:21:19","slug":"realizando-merge-de-shapefiles-com-javascript","status":"publish","type":"post","link":"https:\/\/www.fernandoquadro.com.br\/html\/2010\/06\/22\/realizando-merge-de-shapefiles-com-javascript\/","title":{"rendered":"Realizando &#8220;merge&#8221; de shapefiles com Javascript"},"content":{"rendered":"<p>GeoScript visa fornecer um framework para a cria\u00e7\u00e3o de scripts para realizar tarefas de processamento com <a href=\"http:\/\/geotools.org\/\">GeoTools<\/a> e <a href=\"http:\/\/tsusiatsoftware.net\/jts\/main.html\">Java Topology Suite (JTS)<\/a>. Em um recente post em seu blog, Darren Cope escreveu sobre a fus\u00e3o de um diret\u00f3rio de shapefiles, um procedimento comum quando se trabalha com informa\u00e7\u00f5es geogr\u00e1ficas. Aqui vou demonstrar como fazer a mesma coisa com o GeoScript.<\/p>\n<p>Para este exemplo ser\u00e1 utilizado uma pasta contendo shapefiles do Censo Americano por estado, e iremos fundi-los em um \u00fanico shapefile. O GeoScript fornece uma sintaxe familiar aos desenvolvedores que est\u00e3o acostumados na cria\u00e7\u00e3o de scripts. Veja:<\/p>\n<pre>\r\n\/\/&nbsp;import&nbsp;modules\r\nvar&nbsp;workspace&nbsp;=&nbsp;require(\"geoscript\/workspace\");\r\nvar&nbsp;layer&nbsp;=&nbsp;require(\"geoscript\/layer\");\r\n\r\n\/\/&nbsp;create&nbsp;workspaces&nbsp;from&nbsp;existing&nbsp;directories\r\nvar&nbsp;source&nbsp;=&nbsp;new&nbsp;workspace.Directory(\"path\/to\/source_dir\");\r\nvar&nbsp;target&nbsp;=&nbsp;new&nbsp;workspace.Directory(\"path\/to\/target_dir\");\r\n\r\n\/\/&nbsp;iterate&nbsp;through&nbsp;layers&nbsp;in&nbsp;source&nbsp;workspace\r\nvar&nbsp;country;\r\nsource.names.forEach(function(name)&nbsp;{\r\n&nbsp;&nbsp;&nbsp;&nbsp;\/\/&nbsp;create&nbsp;state&nbsp;layer&nbsp;from&nbsp;existing&nbsp;shapefile\r\n&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;state&nbsp;=&nbsp;source.get(name);\r\n&nbsp;&nbsp;&nbsp;&nbsp;\/\/&nbsp;create&nbsp;country&nbsp;layer&nbsp;first&nbsp;time&nbsp;through\r\n&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(!country)&nbsp;{\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;country&nbsp;=&nbsp;new&nbsp;layer.Layer({\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;schema:&nbsp;state.schema.clone({name:&nbsp;\"country\"})\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;});\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\/\/&nbsp;this&nbsp;creates&nbsp;the&nbsp;new&nbsp;shapefile&nbsp;on&nbsp;disk\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;target.add(country);\r\n&nbsp;&nbsp;&nbsp;&nbsp;}\r\n&nbsp;&nbsp;&nbsp;&nbsp;\/\/&nbsp;iterate&nbsp;through&nbsp;source&nbsp;features&nbsp;to&nbsp;add&nbsp;each&nbsp;to&nbsp;target&nbsp;\r\n&nbsp;&nbsp;&nbsp;&nbsp;state.features.forEach(function(feature)&nbsp;{\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;country.add(feature);\r\n&nbsp;&nbsp;&nbsp;&nbsp;});\r\n});\r\n<\/pre>\n<p>Fonte: <a href=\"http:\/\/geoscriptblog.blogspot.com\/2010\/06\/merging-shapefiles-with-javascript.html\">GeoScript Team<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>GeoScript visa fornecer um framework para a cria\u00e7\u00e3o de scripts para realizar tarefas de processamento com GeoTools e Java Topology Suite (JTS). Em um recente post em seu blog, Darren Cope escreveu sobre a fus\u00e3o de um diret\u00f3rio de shapefiles,&#8230; <a class=\"more-link\" href=\"https:\/\/www.fernandoquadro.com.br\/html\/2010\/06\/22\/realizando-merge-de-shapefiles-com-javascript\/\">Continue Reading &rarr;<\/a><\/p>\n","protected":false},"author":275,"featured_media":7276,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[24,80],"tags":[223,241],"class_list":["post-3639","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-gis","category-programacao","tag-gis","tag-programacao"],"_links":{"self":[{"href":"https:\/\/www.fernandoquadro.com.br\/html\/wp-json\/wp\/v2\/posts\/3639","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.fernandoquadro.com.br\/html\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.fernandoquadro.com.br\/html\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.fernandoquadro.com.br\/html\/wp-json\/wp\/v2\/users\/275"}],"replies":[{"embeddable":true,"href":"https:\/\/www.fernandoquadro.com.br\/html\/wp-json\/wp\/v2\/comments?post=3639"}],"version-history":[{"count":12,"href":"https:\/\/www.fernandoquadro.com.br\/html\/wp-json\/wp\/v2\/posts\/3639\/revisions"}],"predecessor-version":[{"id":7278,"href":"https:\/\/www.fernandoquadro.com.br\/html\/wp-json\/wp\/v2\/posts\/3639\/revisions\/7278"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.fernandoquadro.com.br\/html\/wp-json\/wp\/v2\/media\/7276"}],"wp:attachment":[{"href":"https:\/\/www.fernandoquadro.com.br\/html\/wp-json\/wp\/v2\/media?parent=3639"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.fernandoquadro.com.br\/html\/wp-json\/wp\/v2\/categories?post=3639"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.fernandoquadro.com.br\/html\/wp-json\/wp\/v2\/tags?post=3639"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}