since there is only one set for an address, once in ofbiz you don't have to ask for it again.
Chris Howe sent the following on 12/6/2007 8:53 PM: > Al, others > > I've been studying this a bit further and I'm running into a couple of > limitations and I'm not sure if they're avoidable without purchasing > subscriptions. When geocoding the only free services I'm finding are > webservices that don't allow batch processing so each request/response cycle > takes about 2 seconds. Have you come across anything that can batch the > requests and response to retrieve the coordinates of the address? And even > better, one that doesn't limit the number of addresses. I would simply do an > overlay, but I'm needing to run calculations to test whether the coordinate > pair is inside a polygon. > > ----- Original Message ---- > From: Al Byers <[EMAIL PROTECTED]> > To: [email protected] > Sent: Monday, November 26, 2007 2:22:17 PM > Subject: Re: GIS Tools/modeling > > Here is an interesting blog talking about some of the issues: > http://radar.oreilly.com/archives/2006/05/where_20_standards_1.html > This was written in 2006 and it could be that GeoRSS has come on > stronger > since then. > > You may well want to implement your app using GeoRSS. I forgot that I > added > the RomeEventHandler. I see that JIRA issue OFBIZ-721 deals with RSS > and my > issue is https://issues.apache.org/jira/browse/OFBIZ-1208. Maybe we > should > use 1208 to capture discussion. > > My controller.xml file has these: > > <!--handler name="wfs" type="view" class=" > org.ofbiz.webapp.view.WfsViewHandler"/--> > <handler name="rome" type="request" class=" > org.ofbiz.webapp.event.RomeEventHandler"/> > ... > <request-map uri="ViewCustomRssFeed"> > <security https="false" auth="false"/> > <event type="rome" invoke="generateCustomRssFeed"/> > <response name="success" type="none"/> > <response name="error" type="view" value="error"/> > </request-map> > > Here is the code for generateCustomRssFeed: > > > public static Map generateCustomRssFeed(DispatchContext dctx, > Map > context) { > Debug.logInfo("generateCustomCustomRssFeed(0) context:" + > context, module); > GenericValue userLogin = (GenericValue) > context.get("userLogin"); > String entryLink = (String) context.get("entryLink"); > String feedType = (String) context.get("feedType"); > Locale locale = (Locale) context.get("locale"); > > // create the main link > String mainLink = (String) context.get("mainLink"); > > LocalDispatcher dispatcher = dctx.getDispatcher(); > GenericDelegator delegator = dctx.getDelegator(); > > // get the main blog content > GenericValue content = null; > // create the feed > SyndFeed feed = new SyndFeedImpl(); > feed.setFeedType(feedType); > feed.setLink(mainLink); > > feed.setTitle("Custom RSS Feed"); > feed.setDescription("Custom RSS Feed"); > Debug.logInfo("generateCustomRssFeed(1) feed:" + feed, > module); > feed.setEntries(generateEntryList(dispatcher, delegator, > entryLink, locale, userLogin)); > > Map resp = ServiceUtil.returnSuccess(); > resp.put("wireFeed", feed.createWireFeed()); > return resp; > } > > public static List generateEntryList(LocalDispatcher dispatcher, > GenericDelegator delegator, String entryLink, Locale locale, > GenericValue > userLogin) { > List entries = FastList.newInstance(); > List customList = null; > Map nullMap = null; > try { > customList = delegator.findByAnd("CustomEntity", > nullMap); > } catch (GenericEntityException e) { > Debug.logError(e, module); > } > > if (UtilValidate.isEmpty(customList)) { > return entries; > } > > > Iterator i = customList.iterator(); > while (i.hasNext()) { > GenericValue v = (GenericValue) i.next(); > Debug.logInfo("generateEntryList(1) v:" + v, module); > String sub = v.getString("customName"); > if (sub != null) { > String thisLink = entryLink + "?customId=" + > v.getString("customId"); > SyndContent desc = new SyndContentImpl(); > desc.setType("text/plain"); > desc.setValue(sub); > > SyndEntry entry = new SyndEntryImpl(); > entry.setTitle(v.getString("customName")); > entry.setPublishedDate(v.getTimestamp > ("createdStamp")); > entry.setDescription(desc); > entry.setLink(thisLink); > > //entry.setAuthor((v.getString("createdByUserLogin"))); > > GeoRSSModule geoRSSModule = new > W3CGeoModuleImpl(); > Double lon = v.getDouble("longitude"); > Double lat = v.getDouble("latitude"); > //GeoRSSModule geoRSSModule = new > SimpleModuleImpl(); > if (lon != null && lat != null) { > Position pos = new Position( > lat.doubleValue(), > lon.doubleValue()); > geoRSSModule.setPosition(pos); > entry.getModules().add(geoRSSModule); > Debug.logInfo("generateEntryList(2) entry:" > + > entry, module); > entries.add(entry); > } > } > } > > return entries; > } > > I have added most of this email to JIRA-1208. I should mention that > this > work was sponsored by HotWax. > > -Al > > On 11/26/07, Chris Howe <[EMAIL PROTECTED]> wrote: >> From an OFBiz community perspective KML/Z would just be an output > manner >> (simply done through freemarker templates) as there doesn't seem to > be a >> whole lot of interest in storing data in XML (I floated the Xindice >> integration earlier in the year and while it works there doesn't seem > to be >> much interest). The storage seems to be better through adding > geospatial >> tables or a secondary database and then linking it to a contentId. >> >> I need to do quite a bit of homework on the issue as a whole before I >> bloviate on the issue. The topics that need to be decide on would > be: >> 1) storage format >> 2) retrieval/output format(s) >> 3) miscellaneous tools (centroid, area, perimeter, etc calculations) >> 4) possibly rendering tools (if online map overlays are too limiting) >> Let me know if I'm missing areas while I get my reading list in order > :-) >> ----- Original Message ---- >> From: Al Byers <[EMAIL PROTECTED]> >> To: [email protected] >> Sent: Monday, November 26, 2007 12:18:02 PM >> Subject: Re: GIS Tools/modeling >> >> Chris, >> >> I am not sure that KML and KMZ are not better ways to go. I went the >> "community" route because it just seems to fit in with OFBiz's >> philosophy >> and even Google should be (and I think is) using open source > standards >> in >> their work. I should be able to discuss the advantages and >> disadvantages of >> the Google vs. the Geoserver/MapBuilder approaches, but I would have > to >> research the KML/Z tech more, first. >> >> The question to me answered is whether or not KML/Z are as good at >> accessing >> Geoserver servers as the MapBuilder product. If they don't do as good > a >> job, >> then I think that developers may sometimes wish to access data that > is >> not >> served up by Google Maps and won't be able to. >> >> The other test for KML/Z is if you can do custom rollover popups with >> KML/Z. >> It is easy to do simple ones, but sometimes you may wish to do more >> complicated ones and I am not sure about the suitability of KML/Z for >> that - >> though I would guess it does fine. >> >> Please don't hesitate to discuss your issues here. Adding GIS to > OFBiz >> would >> be a really cool add-on and the more people we can involve, the > better. >> -Al >> >> On 11/26/07, Chris Howe <[EMAIL PROTECTED]> wrote: >>> Very interesting. My implementation is extremely crude in > comparison. >> I >>> was only outputting KML and KMZ for Google Earth. It seems I have >> quite a >>> bit of homework to do before being able to add very much to the >> discussion. >>> ----- Original Message ---- >>> From: Al Byers <[EMAIL PROTECTED]> >>> To: [email protected] >>> Sent: Monday, November 26, 2007 10:46:31 AM >>> Subject: Re: GIS Tools/modeling >>> >>> >>> Hey Chris, >>> >>> Yes, I did some GIS work a few months ago. What I did was add a WFS >>> interface to OFBiz. It is WfsEventHandler class in webapp.event. I >> did >>> a lot >>> of work with GeoServer (http://docs.codehaus.org/display/GEOS/Home) >>> and >>> MapBuilder (http://docs.codehaus.org/display/MAInterstinP/Home) > for >> the >>> client >>> side. >>> I used MySQL for a geo spatial DB. I think GeoServer is definitely >> the >>> way >>> to go for the server since it is Java based and I had no trouble >>> including >>> it in my ofbiz tomcat setup. There is an effort to consolidate many >> of >>> the >>> various client packages (such as OpenLayers) and MapBuilder seems > to >> be >>> at >>> the forefront of that effort (it uses OpenLayers to render, but > adds >> an >>> XML >>> syntax for implementing client frontends. >>> >>> It is a very exciting time for the GIS community as they are > working >>> together to create products and mashups that are the same sort of >>> Goliath-killers in the GIS world that OFBiz is becoming in the ERP >>> world. >>> >>> I also did a GeoRSS interface so that I could add markers to Google >>> Maps, >>> but I did not see how to add that to the ofbiz base code. I would > be >>> willing >>> to share that code if we can see where to add it. See >>> http://docs.codehaus.org/display/GEOSDOC/GeoRSS. >>> >>> I think the WFS interface is the critical part, as it lets you use >>> other >>> servers like GeoServer to server up the base GIS layers, but lets > you >>> use >>> OFBiz to store and server the "points of interest". I only modeled >>> points >>> with my WfsEventHandler class. It needs to be extended to do a >>> rectangular >>> "find". One of the key things that I did was implement the >> "ogc:filter" >>> using FreeMarker templates. That is the part that needs to be >> extended >>> to >>> implement the rectangular find. >>> >>> If you are not familiar with the WFS, WMS and WCS standards, you > need >>> to be. >>> They are what make all the synergy possible. >>> >>> It has been a few months since I have had a chance to work on it >> (which >>> might as well be a few years at my age) so you might want to google >>> "gis" >>> and "ofbiz" to see what else I had to say about it. I would be glad >> to >>> discuss and work on something more substantial for ofbiz, but I am >> not >>> actively working on GIS at the moment, so my time will be limited. >>> >>> -Al >>> >>> On 11/26/07, Chris Howe <[EMAIL PROTECTED]> wrote: >>>> I just completed a rather remedial GIS implementation (very > poorly >>>> designed, but works for it's purpose). Anyone have any >>>> interest/experience/intelligent thought with this? >>>> >>>> >>>> >>> >>> >>> >> >> >> > > > > > >
