<?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-389763236858899261</id><updated>2011-10-04T15:48:10.513-06:00</updated><title type='text'>GIS blog for internet mapping</title><subtitle type='html'>A GIS Blog for developers.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://mapportal.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/389763236858899261/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://mapportal.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>geoneubie</name><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>17</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-389763236858899261.post-8369564241105360355</id><published>2011-09-08T22:28:00.002-06:00</published><updated>2011-09-08T22:33:19.261-06:00</updated><title type='text'>Metadata Mission!</title><content type='html'>&lt;p&gt;&lt;a href="http://www.xtranormal.com/watch/12440764/metadata-mission" target="_new" style="font-size: 14px;font-weight:bold;"&gt;Metadata Mission!&lt;/a&gt;&lt;br /&gt;&lt;/p&gt;&lt;iframe id="xtranormal_Metadata Mission!" name="xtranormal_Metadata Mission!" style="width:480px;height:299px;" src="http://www.xtranormal.com/xtraplayr/12440764/metadata-mission" marginwidth="0" marginheight="0" border="0" frameborder="0" scrolling="auto"&gt;&lt;/iframe&gt;&lt;p&gt;Spock teaches Kirk about the importance of metadata.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/389763236858899261-8369564241105360355?l=mapportal.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mapportal.blogspot.com/feeds/8369564241105360355/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=389763236858899261&amp;postID=8369564241105360355' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/389763236858899261/posts/default/8369564241105360355'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/389763236858899261/posts/default/8369564241105360355'/><link rel='alternate' type='text/html' href='http://mapportal.blogspot.com/2011/09/metadata-mission.html' title='Metadata Mission!'/><author><name>geoneubie</name><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-389763236858899261.post-4530237604575266921</id><published>2011-01-06T12:23:00.027-07:00</published><updated>2011-01-13T14:50:47.293-07:00</updated><title type='text'>Groovy/Grails and Oracle Spatial (Part 1)</title><content type='html'>Below I document a relatively lightweight approach to perform a distance based search in Oracle Spatial using Groovy and Grails.   First some background, we need to calculate reporting metrics for an ocean observing system, one of those metrics is to find all XBT drops within a specified distance of high priority tracklines.&lt;br /&gt;&lt;br /&gt;The ultimate goal is to create a web page where a user can specify a trackline and a distance to generate a report on the number of XBT drops along that transect.  To begin I'll create a groovy service class to begin testing out my Oracle Spatial Query.&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;First we specify a database connection (see def serviceDbHandle).  You'll also see a createDbHandle method which first checks to see if the db handle has already been made (which is the case when running in grails) otherwise it creates the connection (such as when we are running a unit test of the service in groovy).&lt;br /&gt;&lt;br /&gt;Next, our serviceMethod accepts a parameter for sensor type, transect identifier, and a distance.  In this example, we are looking for all XBT observations (points) that fall within 2KM of transect AX07.  Lastly, we capture are query results as a list of domain objects representing the observations that meet our criteria.&lt;br /&gt;&lt;br /&gt;SearchByDistance Service:&lt;br /&gt;&lt;pre class="postCode"&gt;//requires Oracle jar in classpath&lt;br /&gt;package osmcreporter&lt;br /&gt;&lt;br /&gt;import groovy.sql.Sql&lt;br /&gt;&lt;br /&gt;class SearchByDistanceService {&lt;br /&gt;&lt;br /&gt;    static transactional = false&lt;br /&gt; &lt;br /&gt; def serviceDbHandle = null&lt;br /&gt; &lt;br /&gt; def setDbHandle(dataSource) {&lt;br /&gt;   serviceDbHandle = new Sql(dataSource)&lt;br /&gt; }&lt;br /&gt; &lt;br /&gt; //This method allows us to test from Groovy and Grails&lt;br /&gt; //Lazy init the servicDbHandle&lt;br /&gt; def createDbHandle () {&lt;br /&gt;  if (serviceDbHandle) return serviceDbHandle&lt;br /&gt;  serviceDbHandle = Sql.newInstance(&lt;br /&gt;   'jdbc:oracle:thin:@myserver:1521:MYINSTANCE',&lt;br /&gt;   'myuser', 'mypasswd', 'oracle.jdbc.driver.OracleDriver')&lt;br /&gt;  return serviceDbHandle&lt;br /&gt; }&lt;br /&gt; &lt;br /&gt;    def serviceMethod(sensor_type, transect_id, dist) {&lt;br /&gt;  &lt;br /&gt;  println "\nBegin dsrs.serviceMethod()"&lt;br /&gt;  def DailySummaryObservations = []&lt;br /&gt;  def distance = "distance=$dist"&lt;br /&gt;  createDbHandle()&lt;br /&gt;        def sql = """select ds.platform_id as "platformId", ds.platform_code as "platformCode", ds.parameter_standard_name as "paramStandardName", ds.observation_value as "obsValue", ds.observation_depth as "obsDepth", ds.sensor_type as "sensorType", ds.observation_date as "obsDate", ds.observation_location.sdo_point.y as "obsLat", ds.observation_location.sdo_point.x as "obsLon", ds.platform_type_name as "platformTypeName" from OSMCV4.DS_XBT_2010 ds, OSMCV4.XBT_TRAJECTORY_TSQL xbt where sensor_type = ${sensor_type} AND xbt.line = $transect_id and SDO_WITHIN_DISTANCE(ds.observation_location, xbt.shape, '$distance') = 'TRUE'"""&lt;br /&gt;  serviceDbHandle.eachRow(sql) { &lt;br /&gt;   DailySummaryObs dso = new DailySummaryObs(it.toRowResult())&lt;br /&gt;   DailySummaryObservations &lt;&lt; dso&lt;br /&gt;     }&lt;br /&gt;  println "End dsrs.serviceMethod()"&lt;br /&gt;  return DailySummaryObservations&lt;br /&gt;    } &lt;br /&gt; &lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Domain class representing the observations:&lt;br /&gt;&lt;pre class="postCode"&gt;package osmcreporter&lt;br /&gt;&lt;br /&gt;class DailySummaryObs {&lt;br /&gt;&lt;br /&gt; Long platformId&lt;br /&gt; String platformCode&lt;br /&gt; String orgName&lt;br /&gt; String countryName&lt;br /&gt; String platformTypeName&lt;br /&gt; Date obsDate&lt;br /&gt; String paramStandardName&lt;br /&gt; String paramUnits&lt;br /&gt; String sensorCode&lt;br /&gt; String sensorType&lt;br /&gt; Integer sensorObsCount&lt;br /&gt; Integer dailyObsCount&lt;br /&gt; Double obsDepth&lt;br /&gt; Double obsValue&lt;br /&gt; Double obsLat&lt;br /&gt; Double obsLon &lt;br /&gt; &lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Now we'll set up a test class to view our results.&lt;br /&gt;&lt;pre class="postCode"&gt;package osmcreporter&lt;br /&gt;&lt;br /&gt;import grails.test.*&lt;br /&gt;&lt;br /&gt;class SearchByDistanceServiceTests extends GrailsUnitTestCase {&lt;br /&gt;  protected void setUp() {&lt;br /&gt;      super.setUp()&lt;br /&gt;  }&lt;br /&gt;&lt;br /&gt;  protected void tearDown() {&lt;br /&gt;      super.tearDown()&lt;br /&gt;  }&lt;br /&gt;&lt;br /&gt;    void testSomething() {&lt;br /&gt;        def dsrs = new SearchByDistanceService()&lt;br /&gt;        def List dsos = dsrs.serviceMethod('XBT','AX07','200000') &lt;br /&gt; assert dsos.size() &gt;= 0&lt;br /&gt;    }&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;And run the test (provide a program argument - test/unit/osmcreporter/SearchByDistanceServiceTests.groovy):&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_AR-7h26kMcc/TSY3jY3QHwI/AAAAAAAAAC4/jai-C3MQV4U/s1600/testcase.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 275px;" src="http://2.bp.blogspot.com/_AR-7h26kMcc/TSY3jY3QHwI/AAAAAAAAAC4/jai-C3MQV4U/s400/testcase.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5559191871144599298" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;That's it! We have a working Oracle Spatial query running as a service in groovy whose results populate our domain object that holds the observational data.  We also have a unit test case for the service.  In our next post, we'll build out the rest of our grails architecture.  Namely a GSP page to accept user input, a controller to handle the user's submission, and a barebones GSP page to display the results.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/389763236858899261-4530237604575266921?l=mapportal.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mapportal.blogspot.com/feeds/4530237604575266921/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=389763236858899261&amp;postID=4530237604575266921' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/389763236858899261/posts/default/4530237604575266921'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/389763236858899261/posts/default/4530237604575266921'/><link rel='alternate' type='text/html' href='http://mapportal.blogspot.com/2011/01/groovygrails-and-oracle-spatial.html' title='Groovy/Grails and Oracle Spatial (Part 1)'/><author><name>geoneubie</name><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://2.bp.blogspot.com/_AR-7h26kMcc/TSY3jY3QHwI/AAAAAAAAAC4/jai-C3MQV4U/s72-c/testcase.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-389763236858899261.post-1734972401367680760</id><published>2010-11-19T11:21:00.002-07:00</published><updated>2010-11-19T11:24:27.728-07:00</updated><title type='text'>GIS Complex Event Processing Examples</title><content type='html'>geocommons.com/maps/37577&lt;br /&gt;&lt;br /&gt;http://esper.codehaus.org/&lt;br /&gt;&lt;br /&gt;References Manning.com  - See Event Processing in Action&lt;br /&gt;&lt;br /&gt;EsperTech.com&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/389763236858899261-1734972401367680760?l=mapportal.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mapportal.blogspot.com/feeds/1734972401367680760/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=389763236858899261&amp;postID=1734972401367680760' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/389763236858899261/posts/default/1734972401367680760'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/389763236858899261/posts/default/1734972401367680760'/><link rel='alternate' type='text/html' href='http://mapportal.blogspot.com/2010/11/gis-complex-event-processing-examples.html' title='GIS Complex Event Processing Examples'/><author><name>geoneubie</name><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-389763236858899261.post-3876343188448710575</id><published>2009-01-23T15:14:00.021-07:00</published><updated>2009-01-28T11:06:13.139-07:00</updated><title type='text'>Spring Web MVC registering multiple controllers</title><content type='html'>I've recently been working on an OGC Sensor Observation Service (SOS) and wanted to split out some of the request mapping for different underlying data sources into separate controllers.&lt;br /&gt;&lt;br /&gt;So for example I may have a separate controller for each SOS that is instantiated and which may have different presentations and models to support that view.  It wasn't entirely obvious how to 'register' separate controllers into one web app using the Spring servlet config files and web.xml so thought I'd post an example.  Note I am using Spring 2.5.x at the time of writing this post and using an annotation based controller.&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: left;"&gt;First, we need to setup our web.xml file to register the Spring dispatcher servlet with the webapp and map which incoming URL requests will be handled by the Spring dispatcher.  In the example below I've named the Spring DispatcherServlet sensorObsImpl and registered to incoming URL request /osmcObsService and /nosaObsService to the dispatcher.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_AR-7h26kMcc/SYCVDWiJGGI/AAAAAAAAABE/mfwz_sKGSZQ/s1600-h/web-inf.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 151px;" src="http://1.bp.blogspot.com/_AR-7h26kMcc/SYCVDWiJGGI/AAAAAAAAABE/mfwz_sKGSZQ/s400/web-inf.png" alt="" id="BLOGGER_PHOTO_ID_5296397046608631906" border="0" /&gt;&lt;/a&gt;Next we need to set-up the WebApplicationContext configuration file for Spring.  This file has the same name as your dispatcher servlet with the addition of -servlet.xml extension, so in our case we will have a sensorObsImpl-servlet.xml file.  This file sits in the same directory as web.xml.  In our file we'll register two controllers one for our OSMC project and one for our NOSA project.  Since we are going to leverage Spring's support of annotation based programming we'll begin by enabling auto detection of our annotated controllers by adding component scanning to our config file, followed by defining our to controller beans.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_AR-7h26kMcc/SYCcZI1miaI/AAAAAAAAABM/8XBcLnr9b44/s1600-h/sensorObsImpl-servlet.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 103px;" src="http://1.bp.blogspot.com/_AR-7h26kMcc/SYCcZI1miaI/AAAAAAAAABM/8XBcLnr9b44/s400/sensorObsImpl-servlet.png" alt="" id="BLOGGER_PHOTO_ID_5296405117470673314" border="0" /&gt;&lt;/a&gt;Now our controllers are registered with the dispatcher servlet and we can begin to handle incoming request params with the addition of some annotated methods in our controller classes.  In our example below incoming URL requests like /nosaObsService?request=sosInitialize will map to the NosaObsController and be handled by the sosInitialize method.&lt;br /&gt;&lt;br /&gt;@Controller&lt;br /&gt;@RequestMapping("/nosaObsService")&lt;br /&gt;public class NosaObsController {&lt;br /&gt;&lt;br /&gt;  @RequestMapping(params = "request=sosInitialize")&lt;br /&gt;  public ModelAndView sosInitialize(@RequestParam("request") String cmd){        &lt;br /&gt;    .....&lt;br /&gt;  }    &lt;br /&gt;&lt;br /&gt;}&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;For more information check out the Spring docs at :&lt;br /&gt;http://static.springframework.org/spring/docs/2.5.x/reference/mvc.html&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/389763236858899261-3876343188448710575?l=mapportal.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mapportal.blogspot.com/feeds/3876343188448710575/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=389763236858899261&amp;postID=3876343188448710575' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/389763236858899261/posts/default/3876343188448710575'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/389763236858899261/posts/default/3876343188448710575'/><link rel='alternate' type='text/html' href='http://mapportal.blogspot.com/2009/01/spring-web-mvc-registering-multiple.html' title='Spring Web MVC registering multiple controllers'/><author><name>geoneubie</name><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/_AR-7h26kMcc/SYCVDWiJGGI/AAAAAAAAABE/mfwz_sKGSZQ/s72-c/web-inf.png' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-389763236858899261.post-4394311084994140731</id><published>2008-12-02T16:30:00.004-07:00</published><updated>2008-12-19T10:40:46.654-07:00</updated><title type='text'>ArcGIS Server REST Admin</title><content type='html'>You can create a cache for a map service but it will not become available via the REST API until you clear the map cache via the REST admin page.&lt;br /&gt;&lt;br /&gt;The REST Admin interface can be accessed via:&lt;br /&gt;http://host:8399/arcgis/rest/admin/&lt;br /&gt;&lt;br /&gt;Once the map cache has been cleared to check that the service recognizes it you should see:&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Single Fused Map Cache: &lt;/b&gt;true&lt;br /&gt;&lt;br /&gt;via the rest services directory e.g.&lt;br /&gt;http://host:8399/arcgis/rest/services/myservicename/MapServer&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/389763236858899261-4394311084994140731?l=mapportal.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mapportal.blogspot.com/feeds/4394311084994140731/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=389763236858899261&amp;postID=4394311084994140731' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/389763236858899261/posts/default/4394311084994140731'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/389763236858899261/posts/default/4394311084994140731'/><link rel='alternate' type='text/html' href='http://mapportal.blogspot.com/2008/12/arcgis-server-rest-admin.html' title='ArcGIS Server REST Admin'/><author><name>geoneubie</name><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-389763236858899261.post-755392921713809064</id><published>2008-10-21T11:05:00.007-06:00</published><updated>2008-10-21T11:24:12.760-06:00</updated><title type='text'>Oracle SDO2FreeEarth Step 3</title><content type='html'>Lastly we'll reference our javascript file in our HTML page to display our points in FreeEarth.&lt;br /&gt;&lt;br /&gt;First reference our javascript file:&lt;br /&gt;&lt;br /&gt;  script type="text/javascript" src="javascript/myfreearthpts.js"&lt;br /&gt;&lt;br /&gt;Next declare variables, and functions&lt;br /&gt;&lt;br /&gt;    var map;&lt;br /&gt;&lt;br /&gt;    function randomPtPan() {&lt;br /&gt;      var ll = map.getTargetLatLng();&lt;br /&gt;      var max = ptlocations.length-1; //normally total number of points&lt;br /&gt;      var randomPt = Math.floor(Math.random()*max+1);&lt;br /&gt;      ll.lat = ptlocations[randomPt][1];&lt;br /&gt;      ll.lng = ptlocations[randomPt][2];&lt;br /&gt;&lt;br /&gt;      map.panTo(ll, 4, 'easeinquad');&lt;br /&gt;&lt;br /&gt;      _timeout = setTimeout(randomPtPan, 6000);&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    function onMapLoad() {&lt;br /&gt;        // The pts variable is defined in myfreeearthpts.js&lt;br /&gt;        //map.zoomTo(90000, 1, 'easeinquad')  &lt;br /&gt;        for(var i=0; i&lt;ptlocations.length; ++i) {&lt;br /&gt;          var code = ptlocations[i][0];&lt;br /&gt;          var label = new FE.Label(new FE.LatLng(ptlocations[i][1], ptlocations[i][2]), ptlocations[i][3]);&lt;br /&gt;          var icon = new FE.Icon('http://freeearth.poly9.com/images/fff/icons/anchor.png');&lt;br /&gt;          var marker = new FE.Pushpin(new FE.LatLng(ptlocations[i][1], ptlocations[i][2]), icon);&lt;br /&gt;          this.addOverlay(marker);&lt;br /&gt;        } &lt;br /&gt;        this.toggleAtmosphere();&lt;br /&gt;        setTimeout(randomPtPan, 1);&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    function load() {&lt;br /&gt;        map = new FE.Map(document.getElementById("map"));&lt;br /&gt;        map.onLoad = onMapLoad;&lt;br /&gt;        map.load();&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/389763236858899261-755392921713809064?l=mapportal.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mapportal.blogspot.com/feeds/755392921713809064/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=389763236858899261&amp;postID=755392921713809064' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/389763236858899261/posts/default/755392921713809064'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/389763236858899261/posts/default/755392921713809064'/><link rel='alternate' type='text/html' href='http://mapportal.blogspot.com/2008/10/oracle-sdo2freeearth-step-3.html' title='Oracle SDO2FreeEarth Step 3'/><author><name>geoneubie</name><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-389763236858899261.post-1832389976070579994</id><published>2008-10-21T10:56:00.002-06:00</published><updated>2008-10-21T11:04:24.121-06:00</updated><title type='text'>Oracle SDO2FreeEarth Step 2</title><content type='html'>Next will loop thru the result set and write the data out to a javascipt file using the FreeEarth API.  We'll build an array or arrays where a single point is an array of latitude, longitude, and identifier.  In this case getString(1) represents the identifier, getString(2) represents latitude, and getString(3) represents the longitude.&lt;br /&gt;&lt;br /&gt;    String dataLine = "var ptlocations = [";&lt;br /&gt;    StringBuffer sb = new StringBuffer();&lt;br /&gt;    sb.append(dataLine);&lt;br /&gt;    int cnt = 0;&lt;br /&gt;    &lt;br /&gt;    while (rset.next()) {&lt;br /&gt;     dataLine = "[\"" + rset.getString(1) + "\"," + rset.getString(2)+ "," + rset.getString(3) + ",\"" + rset.getString(1) + "\"],";&lt;br /&gt;     sb.append(dataLine);&lt;br /&gt;     cnt++;&lt;br /&gt;    }&lt;br /&gt;    dataLine = sb.toString();&lt;br /&gt;    dataLine = dataLine.substring(0,dataLine.length()-1);&lt;br /&gt;    dataLine += "];";&lt;br /&gt;    &lt;br /&gt;    // Create the file to output results&lt;br /&gt;    FileUtility fu = new FileUtility("webapps/freeearth_demo/myfreearthpts.js");&lt;br /&gt;    fu.openFileWriter();    &lt;br /&gt;    fu.write(dataLine);&lt;br /&gt;    System.out.print(dataLine);      &lt;br /&gt;    fu.close();&lt;br /&gt;    stmt.close();&lt;br /&gt;    conn.close();&lt;br /&gt;    System.out.println ("\nCount=" + cnt);&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/389763236858899261-1832389976070579994?l=mapportal.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mapportal.blogspot.com/feeds/1832389976070579994/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=389763236858899261&amp;postID=1832389976070579994' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/389763236858899261/posts/default/1832389976070579994'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/389763236858899261/posts/default/1832389976070579994'/><link rel='alternate' type='text/html' href='http://mapportal.blogspot.com/2008/10/oracle-sdo2freeearth-step-2.html' title='Oracle SDO2FreeEarth Step 2'/><author><name>geoneubie</name><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-389763236858899261.post-3216562731515276129</id><published>2008-10-21T10:50:00.005-06:00</published><updated>2008-10-21T11:25:54.546-06:00</updated><title type='text'>Oracle SDO2FreeEarth Step 1</title><content type='html'>Been experimenting with visualizations in FreeEarth from poly9  http://freeearth.poly9.com/.  The nice thing about FreeEarth is that it is Flash based so that it doesn't require any web plugins.&lt;br /&gt;&lt;br /&gt;Here I'll take a look at writing point data out from an Oracle SDO table and format in as a variable in javascript required by the FreeEarth website.&lt;br /&gt;&lt;br /&gt;First let's connect to Oracle and query for our points.&lt;br /&gt;&lt;br /&gt; // Load the driver&lt;br /&gt;    Class.forName("oracle.jdbc.driver.OracleDriver");&lt;br /&gt;&lt;br /&gt;    // Connection URL&lt;br /&gt;    String url = "jdbc:oracle:thin:@myserver:1521:mysid";&lt;br /&gt;    &lt;br /&gt;    // Connect to the database&lt;br /&gt;    Connection conn = DriverManager.getConnection(url,"myuser", "mypwd");&lt;br /&gt;    &lt;br /&gt;    conn.setAutoCommit(false);&lt;br /&gt;    Statement stmt = conn.createStatement();&lt;br /&gt;&lt;br /&gt;    // SQL with reference to SDO objects for point data&lt;br /&gt;    String sql = "select pt_id,p.shape.sdo_point.y,p.shape.sdo_point.x from mypoint_layer p";&lt;br /&gt;    ResultSet rset = stmt.executeQuery(sql);&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/389763236858899261-3216562731515276129?l=mapportal.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mapportal.blogspot.com/feeds/3216562731515276129/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=389763236858899261&amp;postID=3216562731515276129' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/389763236858899261/posts/default/3216562731515276129'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/389763236858899261/posts/default/3216562731515276129'/><link rel='alternate' type='text/html' href='http://mapportal.blogspot.com/2008/10/oracle-sdo2freeearth-step-1.html' title='Oracle SDO2FreeEarth Step 1'/><author><name>geoneubie</name><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-389763236858899261.post-282090946644555767</id><published>2008-10-09T10:32:00.005-06:00</published><updated>2008-10-09T10:39:40.326-06:00</updated><title type='text'>GeoServer 1.6.5 and Tomcat</title><content type='html'>It's been awhile since I've had the opportunity to work with geoserver, so today ran thru the default install.  Looks like embedded Jetty is now the standard implementation, if you want to run it under Tomcat you'll need to copy &lt;geoserver_installdir&gt;\webapps\geoserver to &lt;tomcat_installdir&gt;\webapps\geoserver&lt;br /&gt;&lt;br /&gt;Also you'll need to either copy the data dir &lt;geoserver_installdir&gt;\data_dir into the tomcat webapps folder as &lt;tomcat_installdir&gt;\webapps\geoserver\data&lt;br /&gt;&lt;br /&gt;Alternatively (perhaps preferably), you can set the environment variable for tomcat as documented here:&lt;br /&gt;&lt;br /&gt;http://geoserver.org/display/GEOSDOC/Tomcat+-+data_dir+environment+variables&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/389763236858899261-282090946644555767?l=mapportal.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mapportal.blogspot.com/feeds/282090946644555767/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=389763236858899261&amp;postID=282090946644555767' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/389763236858899261/posts/default/282090946644555767'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/389763236858899261/posts/default/282090946644555767'/><link rel='alternate' type='text/html' href='http://mapportal.blogspot.com/2008/10/geoserver-165-and-tomcat.html' title='GeoServer 1.6.5 and Tomcat'/><author><name>geoneubie</name><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-389763236858899261.post-3818423292977721151</id><published>2008-02-11T11:30:00.000-07:00</published><updated>2008-02-11T12:05:16.246-07:00</updated><title type='text'>Conservation GIS  Mashup</title><content type='html'>A new mashup using web services from the Global Biodiversity Information Facility (GBIF) and Centro de Referência em Informação Ambiental (CRIA) allows users to pull data from the world's largest biodiversity data warehouse and model potential species distributions using CRIA's openModeller web service.&lt;br /&gt;&lt;br /&gt;The mashup uses Spring Web MVC for middleware integration.&lt;br /&gt;&lt;br /&gt;openModeller client source code available on the site... There's been talk of adding WMS support on the server to support viewing results in a full web based GIS.&lt;br /&gt;&lt;br /&gt;check it out at &lt;a href="http://www.geovelocity.com/bdmashup.html"&gt;http://www.geovelocity.com/bdmashup.html&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/389763236858899261-3818423292977721151?l=mapportal.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mapportal.blogspot.com/feeds/3818423292977721151/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=389763236858899261&amp;postID=3818423292977721151' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/389763236858899261/posts/default/3818423292977721151'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/389763236858899261/posts/default/3818423292977721151'/><link rel='alternate' type='text/html' href='http://mapportal.blogspot.com/2008/02/conservation-gis-mashup.html' title='Conservation GIS  Mashup'/><author><name>geoneubie</name><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-389763236858899261.post-4907818140070392520</id><published>2008-01-21T12:22:00.002-07:00</published><updated>2008-06-24T14:35:33.573-06:00</updated><title type='text'>Need JavaScript to convert decimal degrees to miles</title><content type='html'>//Note this is an estimate based on a simple spheroid&lt;br /&gt;function distanceConverter(x1,y1,x2,y2) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;// distance between 2 points from decimal degrees to miles&lt;br /&gt;&amp;nbsp;&amp;nbsp;// where x values represent longitude&lt;br /&gt;&amp;nbsp;&amp;nbsp;// where y values represent latitiude&lt;br /&gt;&amp;nbsp;&amp;nbsp;dx = 69.172 * (x2 - x1) * Math.cos( y1 / 57.3);&lt;br /&gt;&amp;nbsp;&amp;nbsp;dy = 69.172 * (y2 - y1);&lt;br /&gt;&amp;nbsp;&amp;nbsp;var dist = Math.sqrt(dx * dx + dy * dy);&lt;br /&gt;&amp;nbsp;&amp;nbsp;return dist;&lt;br /&gt;}&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/389763236858899261-4907818140070392520?l=mapportal.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mapportal.blogspot.com/feeds/4907818140070392520/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=389763236858899261&amp;postID=4907818140070392520' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/389763236858899261/posts/default/4907818140070392520'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/389763236858899261/posts/default/4907818140070392520'/><link rel='alternate' type='text/html' href='http://mapportal.blogspot.com/2008/01/need-javascript-to-convert-decimal.html' title='Need JavaScript to convert decimal degrees to miles'/><author><name>geoneubie</name><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-389763236858899261.post-6828563212398046903</id><published>2007-10-16T09:59:00.000-06:00</published><updated>2007-11-02T10:16:37.800-06:00</updated><title type='text'>Fixing IMapServerProxy(Unknown Source) exception</title><content type='html'>IMapServerProxy(Unknown Source) exception gets thrown when trying using exportMapImage and an underlying java.io.EOFexception occurs in the stack trace.&lt;br /&gt;&lt;br /&gt;This bug/issue is a bear, as it seems to crop on some Windows2003 servers but not others.&lt;br /&gt;&lt;br /&gt;We did two things to resolve this:&lt;br /&gt;1) Upgraded to SP3 for desktop and server&lt;br /&gt;2) Made sure that I created an ArcGISSOC and ArcGISSOM accounts during post install (i.e. don't use an existing account)&lt;br /&gt;3) Copied the new arcobjects.jar (from SP3) into my deployed webapp.&lt;br /&gt;Reload webapp.&lt;br /&gt;&lt;br /&gt;Error is gone!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/389763236858899261-6828563212398046903?l=mapportal.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mapportal.blogspot.com/feeds/6828563212398046903/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=389763236858899261&amp;postID=6828563212398046903' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/389763236858899261/posts/default/6828563212398046903'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/389763236858899261/posts/default/6828563212398046903'/><link rel='alternate' type='text/html' href='http://mapportal.blogspot.com/2007/10/fixing-imapserverproxyunknown-source.html' title='Fixing IMapServerProxy(Unknown Source) exception'/><author><name>geoneubie</name><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-389763236858899261.post-1082478251904723647</id><published>2007-08-24T14:40:00.000-06:00</published><updated>2007-08-24T14:53:09.611-06:00</updated><title type='text'>How to buffer features in ArcServer using Java</title><content type='html'>Creating a map image of buffered features takes a lot of code!&lt;br /&gt;&lt;br /&gt;This sample steps you through it all and works with the cities and places shapefiles located with ESRI sample data.  One thing you'll need to do is create a BufferSample.mxd with cities as the first layer in the TOC, places as the second layer in the TOC.  Set-up the map service in ArcGIS Server and plug in your host, username/password values and you should be good to go!&lt;br /&gt;&lt;br /&gt;A key method to look in the code is createBufferGeometry:&lt;br /&gt;  /**&lt;br /&gt;   * Create the buffer geometry&lt;br /&gt;   * @param    layerId the layer position in the MXD table of contents&lt;br /&gt;   * @param    feaure ids of selected features to buffer&lt;br /&gt;   * @param    distance to buffer features in decimal degrees&lt;br /&gt;   * @return    the buffer geometry&lt;br /&gt;   * @throws    Exception when buffer geometry fails&lt;br /&gt;   */&lt;br /&gt;  public IGeometry createBufferGeometry(int layerID, IFIDSet2 fidSet2, double distance) throws Exception {&lt;br /&gt;  // lots of code here!&lt;br /&gt; return buffersGeometry;     }  &lt;br /&gt;&lt;br /&gt;and the full sample is located at geovelocity's website: &lt;a href="http://www.geovelocity.com/downloads/BufferSample.zip"&gt;http://www.geovelocity.com/downloads/BufferSample.zip&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/389763236858899261-1082478251904723647?l=mapportal.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mapportal.blogspot.com/feeds/1082478251904723647/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=389763236858899261&amp;postID=1082478251904723647' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/389763236858899261/posts/default/1082478251904723647'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/389763236858899261/posts/default/1082478251904723647'/><link rel='alternate' type='text/html' href='http://mapportal.blogspot.com/2007/08/how-to-buffer-features-in-arcserver.html' title='How to buffer features in ArcServer using Java'/><author><name>geoneubie</name><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-389763236858899261.post-1058584995526824682</id><published>2007-08-22T11:42:00.000-06:00</published><updated>2007-08-22T13:15:35.771-06:00</updated><title type='text'>Migrating ArcGIS Server Java Code from 9.1 to 9.2</title><content type='html'>&lt;div&gt;When upgrading a ArcGIS Server Java application from ArcGIS Server 9.1 to 9.2, you'll notice that the way you instantiate objects from the server context has changed (become deprecated).  The new method follows a more conventional Java cast.&lt;br /&gt;&lt;br /&gt;Below are some examples based on a utility class used in symbolizing a polygon element for a buffer operation.&lt;/div&gt;&lt;br /&gt;So for example in ArcGIS Server 9.1 to instantiate IRgbColor we would do the following:&lt;br /&gt;IRgbColor color = new RgbColor(this.sc.createObject(RgbColor.getClsid()));&lt;br /&gt;&lt;br /&gt;Whereas in ArcGIS Server 9.2 we do the following:&lt;br /&gt;IRgbColor color = (IRgbColor) this.sc.createObject("esriDisplay.RgbColor");&lt;br /&gt;&lt;br /&gt;The full source code for the files is available at geoVelocity's website:&lt;br /&gt;&lt;a href="http://www.geovelocity.com/downloads/RgbColorSample.zip"&gt;http://www.geovelocity.com/downloads/RgbColorSample.zip&lt;/a&gt;&lt;br /&gt;&lt;div&gt; &lt;/div&gt;&lt;br /&gt;&lt;div&gt; &lt;/div&gt;&lt;br /&gt;&lt;div&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/389763236858899261-1058584995526824682?l=mapportal.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mapportal.blogspot.com/feeds/1058584995526824682/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=389763236858899261&amp;postID=1058584995526824682' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/389763236858899261/posts/default/1058584995526824682'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/389763236858899261/posts/default/1058584995526824682'/><link rel='alternate' type='text/html' href='http://mapportal.blogspot.com/2007/08/migrating-arcgis-server-java-code-from.html' title='Migrating ArcGIS Server Java Code from 9.1 to 9.2'/><author><name>geoneubie</name><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-389763236858899261.post-1486371898191809569</id><published>2007-07-27T16:00:00.000-06:00</published><updated>2007-07-27T16:04:44.003-06:00</updated><title type='text'>GeoServer WCS</title><content type='html'>Looks like raster support via the OGC's Web Coverage Specification is now in the main distribution of geoServer's latest release!&lt;br /&gt;&lt;br /&gt;http://www.geoserver.org/&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/389763236858899261-1486371898191809569?l=mapportal.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mapportal.blogspot.com/feeds/1486371898191809569/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=389763236858899261&amp;postID=1486371898191809569' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/389763236858899261/posts/default/1486371898191809569'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/389763236858899261/posts/default/1486371898191809569'/><link rel='alternate' type='text/html' href='http://mapportal.blogspot.com/2007/07/geoserver-wcs.html' title='GeoServer WCS'/><author><name>geoneubie</name><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-389763236858899261.post-3189717767551443479</id><published>2007-07-27T15:45:00.002-06:00</published><updated>2008-04-11T11:49:41.961-06:00</updated><title type='text'>ArcGIS Server and Java Integration</title><content type='html'>geoVelocity (http://www.geovelocity.com) has just finished a risk management application.  This application uses advanced ArcGIS Server functionality using Java, Service Oriented Architectures and Ajax. Modeling components using the raster api were also incorporated.  Contact info[at]geovelocity.com&lt;/at&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/389763236858899261-3189717767551443479?l=mapportal.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mapportal.blogspot.com/feeds/3189717767551443479/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=389763236858899261&amp;postID=3189717767551443479' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/389763236858899261/posts/default/3189717767551443479'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/389763236858899261/posts/default/3189717767551443479'/><link rel='alternate' type='text/html' href='http://mapportal.blogspot.com/2007/07/arcgis-server-and-java-integration.html' title='ArcGIS Server and Java Integration'/><author><name>geoneubie</name><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-389763236858899261.post-769317648005475375</id><published>2007-07-27T14:51:00.000-06:00</published><updated>2007-07-27T15:59:32.547-06:00</updated><title type='text'>GIS Enterprise Monitoring Software</title><content type='html'>Looking for a GIS enterprise monitoring software?&lt;br /&gt;&lt;br /&gt;Check out http://www.geoxmf.com&lt;br /&gt;&lt;br /&gt;They've got email and text message based notifications, and looks like some cool real-time reporting tools as well!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/389763236858899261-769317648005475375?l=mapportal.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mapportal.blogspot.com/feeds/769317648005475375/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=389763236858899261&amp;postID=769317648005475375' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/389763236858899261/posts/default/769317648005475375'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/389763236858899261/posts/default/769317648005475375'/><link rel='alternate' type='text/html' href='http://mapportal.blogspot.com/2007/07/gis-enterprise-monitoring-software.html' title='GIS Enterprise Monitoring Software'/><author><name>geoneubie</name><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>
