<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>MapWrecker 2.0</title>
	<atom:link href="http://mapwrecker.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://mapwrecker.wordpress.com</link>
	<description>AJAX, Maps, .NET, and Destruction</description>
	<lastBuildDate>Thu, 07 Jul 2011 02:14:55 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='mapwrecker.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://s2.wp.com/i/buttonw-com.png</url>
		<title>MapWrecker 2.0</title>
		<link>http://mapwrecker.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://mapwrecker.wordpress.com/osd.xml" title="MapWrecker 2.0" />
	<atom:link rel='hub' href='http://mapwrecker.wordpress.com/?pushpress=hub'/>
		<item>
		<title>Creating mobile maps without Objective C</title>
		<link>http://mapwrecker.wordpress.com/2011/07/07/creating-mobile-maps-without-objective-c/</link>
		<comments>http://mapwrecker.wordpress.com/2011/07/07/creating-mobile-maps-without-objective-c/#comments</comments>
		<pubDate>Thu, 07 Jul 2011 02:14:53 +0000</pubDate>
		<dc:creator>Bill Thorp</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://mapwrecker.wordpress.com/?p=279</guid>
		<description><![CDATA[Wanna create that iPhone web mapping app, but not write Objective C code? If you don&#8217;t need low-level APIs, consider your options: C#, JS, or Flash. Even better, these alternatives deploy to Android, and possibly other platforms. Flash: As of Flash Builder 4.5.1, apparently you&#8217;re golden. It does iOS, Android, and BlackBerry apps as well. [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mapwrecker.wordpress.com&amp;blog=920496&amp;post=279&amp;subd=mapwrecker&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Wanna create that iPhone web mapping app, but not write Objective C code?  If you don&#8217;t need low-level APIs, consider your options:  C#, JS, or Flash.  Even better, these alternatives deploy to Android, and possibly other platforms. </p>
<p>Flash:  As of Flash Builder 4.5.1, apparently <a href="http://www.webmapsolutions.com/iphone-ios-mobile-maps-arcgis-location-based-services-lbs" target="_blank">you&#8217;re golden.</a>  It does iOS, Android, and BlackBerry apps as well.</p>
<p>JavaScript:  ESRI&#8217;s JS APIs <a href="http://help.arcgis.com/EN/webapi/javascript/arcgis/mobile/index.html" target="_blank">work in mobile browsers too.</a>  Sprinkle some <a href="http://www.phonegap.com/" target="_blank">PhoneGap</a> goodness in the mix to access select native APIs and deploy as a native app.</p>
<p>C#:  <a href="http://monotouch.net/" target="_blank">MonoTouch</a> and <a href="http://mono-android.net/" target="_blank">MonoDroid</a> let you deploy C# applications to iOS or Android devices.</p>
<p>Overall Object C is a hard sell when &#8211; in many cases &#8211; you can recycle your existing codebase into a mobile application.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/mapwrecker.wordpress.com/279/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/mapwrecker.wordpress.com/279/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/mapwrecker.wordpress.com/279/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/mapwrecker.wordpress.com/279/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/mapwrecker.wordpress.com/279/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/mapwrecker.wordpress.com/279/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/mapwrecker.wordpress.com/279/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/mapwrecker.wordpress.com/279/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/mapwrecker.wordpress.com/279/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/mapwrecker.wordpress.com/279/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/mapwrecker.wordpress.com/279/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/mapwrecker.wordpress.com/279/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/mapwrecker.wordpress.com/279/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/mapwrecker.wordpress.com/279/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mapwrecker.wordpress.com&amp;blog=920496&amp;post=279&amp;subd=mapwrecker&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://mapwrecker.wordpress.com/2011/07/07/creating-mobile-maps-without-objective-c/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/e68cbde5dbc158d8eceab62caa6fb19f?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Bill Thorp</media:title>
		</media:content>
	</item>
		<item>
		<title>Silverlight XML Settings Loader</title>
		<link>http://mapwrecker.wordpress.com/2011/06/10/silverlight-xml-settings-loader/</link>
		<comments>http://mapwrecker.wordpress.com/2011/06/10/silverlight-xml-settings-loader/#comments</comments>
		<pubDate>Fri, 10 Jun 2011 15:10:31 +0000</pubDate>
		<dc:creator>Bill Thorp</dc:creator>
				<category><![CDATA[Silverlight]]></category>

		<guid isPermaLink="false">http://mapwrecker.wordpress.com/?p=268</guid>
		<description><![CDATA[All things go in cycles. I wrote a Tiny Flex/AS3 XML Settings Loader years ago for some consulting I was doing. Now I have written it again in Silverlight, for the same project. The goals are the same, to synchronously load XML data from the HTML page. Silverlight isn&#8217;t quite as clean, however. The Silverlight [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mapwrecker.wordpress.com&amp;blog=920496&amp;post=268&amp;subd=mapwrecker&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>All things go in cycles.  I wrote a <a href="http://mapwrecker.wordpress.com/2008/05/19/tiny-flexas3-xml-settings-loader/" title="Tiny Flex/AS3 XML Settings Loader">Tiny Flex/AS3 XML Settings Loader</a> years ago for some consulting I was doing.  Now I have written it again in Silverlight, for the same project.  The goals are the same, to synchronously load XML data from the HTML page.  Silverlight isn&#8217;t quite as clean, however.  The Silverlight control&#8217;s parent HTML page may only be accessed from Silverlight&#8217;s UI-thread.  If the code isn&#8217;t running on the UI-thread, Dispatcher must be used to access it &#8211; asynchronously [*cough*].  Of course, a wait handle can make everything synchronous again, albeit unsexy.</p>
<div style="overflow:scroll;width:100%;text-align:left;">
<pre>
<code>
// create a wait handle just in case
AutoResetEvent autoResetEvent = new AutoResetEvent(false);
XElement root = null;

// define our work package - to grab the HTML element by name
Action grabHtmlData = () =&gt;
{
   HtmlElement htmlElement = HtmlPage.Document.GetElementById(name);
   if (htmlElement == null) throw new Exception(name + " tag must be present in the html");
   string fieldsXml = (string) htmlElement.GetProperty("innerhtml");
   if (fieldsXml == null) throw new Exception(name + " tag must be present in the html");
   XDocument fields = XDocument.Parse(fieldsXml);
   root = fields.Root;
   autoResetEvent.Set();
};

//optionally run this on the UI thread
if (Deployment.Current.Dispatcher.CheckAccess()) grabHtmlData();
else Deployment.Current.Dispatcher.BeginInvoke(grabHtmlData);

autoResetEvent.WaitOne();
return root;
</code>
</pre>
</div>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/mapwrecker.wordpress.com/268/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/mapwrecker.wordpress.com/268/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/mapwrecker.wordpress.com/268/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/mapwrecker.wordpress.com/268/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/mapwrecker.wordpress.com/268/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/mapwrecker.wordpress.com/268/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/mapwrecker.wordpress.com/268/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/mapwrecker.wordpress.com/268/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/mapwrecker.wordpress.com/268/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/mapwrecker.wordpress.com/268/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/mapwrecker.wordpress.com/268/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/mapwrecker.wordpress.com/268/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/mapwrecker.wordpress.com/268/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/mapwrecker.wordpress.com/268/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mapwrecker.wordpress.com&amp;blog=920496&amp;post=268&amp;subd=mapwrecker&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://mapwrecker.wordpress.com/2011/06/10/silverlight-xml-settings-loader/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/e68cbde5dbc158d8eceab62caa6fb19f?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Bill Thorp</media:title>
		</media:content>
	</item>
		<item>
		<title>Pairing the Dojo DataGrid and an ArcGIS JS API Map &#8211; Part 2</title>
		<link>http://mapwrecker.wordpress.com/2010/08/07/pairing-the-dojo-datagrid-and-an-arcgis-js-api-map-part-2/</link>
		<comments>http://mapwrecker.wordpress.com/2010/08/07/pairing-the-dojo-datagrid-and-an-arcgis-js-api-map-part-2/#comments</comments>
		<pubDate>Sat, 07 Aug 2010 14:13:23 +0000</pubDate>
		<dc:creator>Bill Thorp</dc:creator>
				<category><![CDATA[ArcGIS Server]]></category>
		<category><![CDATA[JSON]]></category>

		<guid isPermaLink="false">http://mapwrecker.wordpress.com/?p=256</guid>
		<description><![CDATA[In my previous rambling tirade, I explained how pairing a Dojo DataGrid with an ArcGIS JS API Map isn&#8217;t entirely elegant.  I kept asking &#8220;why doesn&#8217;t it work (the way I want it to)&#8221;, so I fixed it.  Features include: Direct binding from DataGrids (and other things too!) to the FeatureLayer Supports easy client-side text-based [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mapwrecker.wordpress.com&amp;blog=920496&amp;post=256&amp;subd=mapwrecker&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>In my <a href="http://mapwrecker.wordpress.com/2010/08/04/pairing-the-dojo-datagrid-and-an-arcgis-js-api-map/">previous rambling tirade</a>, I explained how pairing a Dojo DataGrid with an ArcGIS JS API Map isn&#8217;t entirely elegant.  I kept asking &#8220;why doesn&#8217;t it work (the way I want it to)&#8221;, so I fixed it.  Features include:</p>
<ul>
<li>Direct binding from DataGrids (and other things too!) to the FeatureLayer</li>
<li>Supports easy client-side text-based querying</li>
<li>Support for custom, function-based querying</li>
<li>Supports spatial-filtering for grid-results based on map extent</li>
<li>Supports feature hiding/showing based on grid-results</li>
<li>Grid items &#8220;===&#8221; FeatureLayer items, no reassembly necessary</li>
<li>Usable without a grid for rich, client-side control of feature visibility</li>
</ul>
<p>Presenting &#8220;<a href="http://dl.dropbox.com/u/331472/graphicsLayer.js">GraphicsLayerStore</a>&#8221; v 0.1.</p>
<p>I&#8217;ll spare you the inlined code, just compare my <a href="http://dl.dropbox.com/u/331472/example.html">example</a> with the <a href="http://blogs.esri.com/Dev/blogs/arcgisserver/archive/2009/12/02/Display-attributes-in-a-Dojox-DataGrid.aspx">ArcGIS Server Blog&#8217;s example</a>.</p>
<div style="font-size:x-small;">(Note that I claim my implicit copyright on this code, but I&#8217;d happily release a copyleft version for those who give me feedback.)</div>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/mapwrecker.wordpress.com/256/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/mapwrecker.wordpress.com/256/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/mapwrecker.wordpress.com/256/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/mapwrecker.wordpress.com/256/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/mapwrecker.wordpress.com/256/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/mapwrecker.wordpress.com/256/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/mapwrecker.wordpress.com/256/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/mapwrecker.wordpress.com/256/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/mapwrecker.wordpress.com/256/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/mapwrecker.wordpress.com/256/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/mapwrecker.wordpress.com/256/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/mapwrecker.wordpress.com/256/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/mapwrecker.wordpress.com/256/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/mapwrecker.wordpress.com/256/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mapwrecker.wordpress.com&amp;blog=920496&amp;post=256&amp;subd=mapwrecker&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://mapwrecker.wordpress.com/2010/08/07/pairing-the-dojo-datagrid-and-an-arcgis-js-api-map-part-2/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/e68cbde5dbc158d8eceab62caa6fb19f?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Bill Thorp</media:title>
		</media:content>
	</item>
		<item>
		<title>Pairing the Dojo DataGrid and an ArcGIS JS API Map</title>
		<link>http://mapwrecker.wordpress.com/2010/08/04/pairing-the-dojo-datagrid-and-an-arcgis-js-api-map/</link>
		<comments>http://mapwrecker.wordpress.com/2010/08/04/pairing-the-dojo-datagrid-and-an-arcgis-js-api-map/#comments</comments>
		<pubDate>Wed, 04 Aug 2010 09:07:57 +0000</pubDate>
		<dc:creator>Bill Thorp</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://mapwrecker.wordpress.com/?p=245</guid>
		<description><![CDATA[This post is a rewrite of my last one. Sometimes you just have to tear things up and try again. There&#8217;s some decisions to make when using a Dojo DataGrid and ArcGIS JS API Map. First off, the Dojo DataGrid doesn&#8217;t act alone, it needs a data store like an ItemFileReadStore or a QueryReadStore. A ItemFileReadStore [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mapwrecker.wordpress.com&amp;blog=920496&amp;post=245&amp;subd=mapwrecker&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>This post is a rewrite of my last one. Sometimes you just have to tear things up and try again.</p>
<p>There&#8217;s some decisions to make when using a <em>Dojo DataGrid</em> and <em>ArcGIS JS API Map</em>. First off, the <em>Dojo DataGrid</em> doesn&#8217;t act alone, it needs a data store like an <em>ItemFileReadStore</em> or a <em>QueryReadStore</em>. A <em>ItemFileReadStore</em> is like running a <em>FeatureLayer</em> in SNAPSHOP, where you&#8217;re storing all the data in memory and can query it on-the-fly. A <em>QueryReadStore</em> is like ONDEMAND mode, where you&#8217;re frequently querying for new data.  Note the additional parallel between the user-interface only elements of <em>DataGrid</em>/<em>GraphicsLayer</em>, versus the <em>DataGrid</em>+<em>Store</em>/<em>FeatureLayer</em> solutions which also query and store data.</p>
<p>So if you&#8217;re using a <em>DataGrid</em>, you&#8217;ll have at least some data duplication between your <em>FeatureLayer</em> and your <em>DataGrid&#8217;s</em> store. You should never need to use a <em>QueryReadStore</em> and an ONDEMAND <em>FeatureLayer</em> at the same time; there is no reason to download data twice.  Similarly, it makes little sense to fully populate a <em>DataItemStore</em> and a SNAPSHOT <em>FeatureLayer</em>.  It is most sensible to duplicate only the slice of data which the other needs.  But which user-interface item drives which?  Do map events feed data to the grid or visa versa?</p>
<p>Lets first examine the <em>DataGrid</em>.  Deciding what subset of data to share with the map is difficult. Out of the box, the <em>Datagrid </em>cannot page data, nor easily determine what items are visible on screen (fix: override <em>grid.scroller.repositionPages()</em> and recalculate <em>grid.scroller.firstVisibleRow</em>). The <em>ItemFileReadStore</em> doesn&#8217;t support spatial queries, only regular-expression type queries (fix: override <em>ItemFileReadStore._fetch()</em>).  Finally, JSON loaded into a <em>ItemFileReadStore</em> gets &#8220;normalized&#8221; into arrays, in other words, terribly mangled.  Put a <em>Feature</em> into a <em>ItemFileReadStore</em>, it won&#8217;t come out as a <em>Feature</em> per-se, and will require some cleanup to be added to the map (fix: essentially rewrite <em>ItemFileReadStore</em>).</p>
<p>If I haven&#8217;t deterred you from even thinking about populating a <em>GraphicsLayer</em> from a <em>DataGrid</em>/<em>ItemFileReadStore</em>, lets look at the alternative. <em>FeatureLayers</em> do not support sorting. Your grid requires sorting, and it also requires reading from a <em>Dojo.Data.Read</em> API source&#8230; You&#8217;ll be re-populating an <em>ItemFileReadStore</em> during either <em>onUpdateEnd</em> or <em>onExtentChange</em>, so the grid can access it. SNAPSHOT <em>FeatureLayers</em> cannot filter clientside by &#8220;text&#8221; or &#8220;where&#8221; clause, and will force an ONDEMAND style query. Another useful point here that <em>Querying</em> an ONDEMAND <em>FeatureLayer</em> for data doesn&#8217;t automatically change <em>Feature</em> visibilities like <em>setDefinitionExpression(),</em> so any clientside-filtering-solution must be wired up by hand.</p>
<p>I  have found that populating a <em>DataGrid</em>/<em>ItemFileReadStore</em> from a <em>FeatureLayer</em> is usually the easiest solution. This option could be made more interesting by extending the <em>FeatureLayer</em> class to support the <em>Dojo.Data.Read</em> API, allowing the <em>DataGrid</em> to read directly from the <em>FeatureLayer</em>.  However, there are certain circumstances where populating a <em>GraphicsLayer</em> from a <em>DataGrid</em>/<em>ItemFileReadStore</em> becomes an intriguing.  Supporting non-ArcGIS-Server datasources or allowing robust clientside querying are two potential reasons &#8212; but be prepared to rewrite <em>ItemFileReadStore</em>.  That said, if you&#8217;re attempting either of these hacks, go full-barrel and do them both.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/mapwrecker.wordpress.com/245/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/mapwrecker.wordpress.com/245/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/mapwrecker.wordpress.com/245/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/mapwrecker.wordpress.com/245/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/mapwrecker.wordpress.com/245/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/mapwrecker.wordpress.com/245/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/mapwrecker.wordpress.com/245/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/mapwrecker.wordpress.com/245/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/mapwrecker.wordpress.com/245/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/mapwrecker.wordpress.com/245/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/mapwrecker.wordpress.com/245/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/mapwrecker.wordpress.com/245/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/mapwrecker.wordpress.com/245/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/mapwrecker.wordpress.com/245/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mapwrecker.wordpress.com&amp;blog=920496&amp;post=245&amp;subd=mapwrecker&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://mapwrecker.wordpress.com/2010/08/04/pairing-the-dojo-datagrid-and-an-arcgis-js-api-map/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/e68cbde5dbc158d8eceab62caa6fb19f?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Bill Thorp</media:title>
		</media:content>
	</item>
		<item>
		<title>Slow IE Graphics in the ArcGIS Server Javascript API</title>
		<link>http://mapwrecker.wordpress.com/2010/07/26/slow-graphics-in-the-arcgis-server-javascript-api/</link>
		<comments>http://mapwrecker.wordpress.com/2010/07/26/slow-graphics-in-the-arcgis-server-javascript-api/#comments</comments>
		<pubDate>Mon, 26 Jul 2010 14:15:17 +0000</pubDate>
		<dc:creator>Bill Thorp</dc:creator>
				<category><![CDATA[ArcGIS Server]]></category>
		<category><![CDATA[Vectors]]></category>

		<guid isPermaLink="false">http://mapwrecker.wordpress.com/?p=223</guid>
		<description><![CDATA[I&#8217;m doing a little series on the ArcGIS Server Javascript API (v2 beta) and Dojo (v1.4), because I feel they&#8217;ve finally reached a level of maturity wherein you start kicking the tires. Today I&#8217;m looking at the GraphicsLayer. GraphicsLayer renders graphics on the fly. Underneath the hood, GraphicsLayer uses the DojoX.Gfx API, which is nice in-so-far-as ESRI doesn&#8217;t have to [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mapwrecker.wordpress.com&amp;blog=920496&amp;post=223&amp;subd=mapwrecker&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m doing a little series on the <em><a href="http://resources.esri.com/help/webapi/javascript/arcgis/">ArcGIS Server Javascript API</a></em> (v2 beta) and <em><a href="http://www.dojotoolkit.org/">Dojo</a></em> (v1.4), because I feel they&#8217;ve finally reached a level of maturity wherein you start kicking the tires. Today I&#8217;m looking at the <em>GraphicsLayer</em>. <em>GraphicsLayer</em> renders graphics on the fly. Underneath the hood, <em>GraphicsLayer</em> uses the <em>DojoX.Gfx</em> API, which is nice in-so-far-as ESRI doesn&#8217;t have to sweat the details. Unfortunately, the Devil is in the details.</p>
<p>Try, for instance, to draw 600 circle features on a map. For probably 80% us, it&#8217;ll perform quite nicely. These 80% of us use Firefox. Performance in IE simply doesn&#8217;t make sense&#8230; why should panning the map cause a ~1 second delay? Well, firing up the JavaScript profiler we can track the issue to a little function called <em>_applyTranform()</em>.</p>
<p><em>Dojox.gfx.Shape._applyTransform()</em> gets run from <em>esri.layers._GraphicsLayer._onPanHandler()</em>. It individually repositions each feature, whenever the map pans. Let me say that again. <strong>It individually repositions each feature, whenever the map pans.</strong> Worse yet, <em>_applyTranform()</em> is not run only on pan-end, its is run multiple times throughout the pan. Panning for approximately 5 seconds resulted in <em>_applyTranform()</em> running 40 times, for 2.7s of the 3.3s of total JS runtime. Most of this seems to be DOM/CSS manipulation, though matrices manipulation and <em>Number.toFixed()</em> also factor in.</p>
<p>Two quick alternatives were checked: bulk replacement of the VML, versus moving the entire drawing surface via CSS. Bulk VML replacement via DOM.innerHTML showed no subjective benefit on initial testing.  Panning the drawing surface instead of each feature DID show a significant subjective speed improvement.</p>
<p>Clearly, the performance of <em>Graphics</em> rendering in the <em>ArcGIS Server Javascript API</em> is poor in IE/VML. This issue is literally built upon the<em> Dojox.gfx</em> API; which needlessly complicates the task at hand.  <em><a href="http://openlayers.org/">OpenLayers</a></em>, for instance, does not exhibit such beleaguered panning performance.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/mapwrecker.wordpress.com/223/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/mapwrecker.wordpress.com/223/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/mapwrecker.wordpress.com/223/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/mapwrecker.wordpress.com/223/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/mapwrecker.wordpress.com/223/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/mapwrecker.wordpress.com/223/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/mapwrecker.wordpress.com/223/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/mapwrecker.wordpress.com/223/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/mapwrecker.wordpress.com/223/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/mapwrecker.wordpress.com/223/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/mapwrecker.wordpress.com/223/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/mapwrecker.wordpress.com/223/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/mapwrecker.wordpress.com/223/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/mapwrecker.wordpress.com/223/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mapwrecker.wordpress.com&amp;blog=920496&amp;post=223&amp;subd=mapwrecker&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://mapwrecker.wordpress.com/2010/07/26/slow-graphics-in-the-arcgis-server-javascript-api/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/e68cbde5dbc158d8eceab62caa6fb19f?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Bill Thorp</media:title>
		</media:content>
	</item>
		<item>
		<title>Synchronizing a Dojo DataGrid to a map&#8217;s visible geometries</title>
		<link>http://mapwrecker.wordpress.com/2010/07/21/synchronizing-a-dojo-datagrid-to-a-maps-visible-geometries/</link>
		<comments>http://mapwrecker.wordpress.com/2010/07/21/synchronizing-a-dojo-datagrid-to-a-maps-visible-geometries/#comments</comments>
		<pubDate>Wed, 21 Jul 2010 12:44:03 +0000</pubDate>
		<dc:creator>Bill Thorp</dc:creator>
				<category><![CDATA[ArcGIS Server]]></category>
		<category><![CDATA[JSON]]></category>

		<guid isPermaLink="false">http://mapwrecker.wordpress.com/?p=196</guid>
		<description><![CDATA[Imagine you have an ArcGIS Server Javascript API map, and you want to synchronize the points on screen to a Dojo DataGrid. As the map pans, the DataGrid will update to contain only the results shown on the map. If you&#8217;re basing your code off any examples from the ArcGIS Server blog, your DataGrid will [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mapwrecker.wordpress.com&amp;blog=920496&amp;post=196&amp;subd=mapwrecker&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Imagine you have an ArcGIS Server Javascript API map, and you want to synchronize the points on screen to a <a href="http://docs.dojocampus.org/dojox/grid">Dojo DataGrid</a>. As the map pans, the DataGrid will update to contain only the results shown on the map. If you&#8217;re basing your code off any examples from the ArcGIS Server blog, your DataGrid will probably rely on a <a href="http://docs.dojocampus.org/dojo/data/ItemFileReadStore">ItemFileReadStore</a> to store the data, sort it, query it, etc..</p>
<p>An ItemFileReadStore asks the server for data once, and then supplies chunks of it to the DataGrid as needed. If your dataset is small enough to cache/filter clientside, it&#8217;s your ticket. ItemFileReadStore implements the <a href="http://docs.dojocampus.org/dojo/data/api/Read">Dojo.Data.Read API</a>, which allows you to supply queries to filter your data. Using the ItemFileReadStore&#8217;s query functionality is the intelligent alternative to repopulating the ItemFileReadStore&#8217;s data every time we change map extents. <em>Except you can&#8217;t use ItemFileReadStore&#8217;s for spatial queries &#8230; it is limited to simple text and regular expression queries.</em></p>
<p>Instead of living with this limitation, we can subclass the ItemFileReadStore to add functionality. Although this involves overriding the private function &#8220;_fetchItems&#8221;, the use of &#8220;_fetchItems&#8221; is specified within the <a href="http://www.dojotoolkit.org/api/dojo/data/util/simpleFetch.html">SimpleFetch</a> mixin, and is therefore less likely to change as Dojo grows.</p>
<div style="text-align:left;width:100%;overflow:scroll;">
<pre><code>
/* subclass ItemFileReadStore so that we can override the _FetchItems method to support custom queries */
dojo.declare("custom.QueryReadStore", dojo.data.ItemFileReadStore, {
    _fetchItems: function( keywordArgs, findCallback, errorCallback) {
        /* substitute this code into ItemFileReadStore's _fetchItems code around 32 lines in */
        if(typeof value == 'function') match = value(arrayOfItems[i]);
        else if (!self._containsValue(candidateItem, key, value, regexpList[key])) match = false;
        /* end substitution */
}}};

/* wire up events to refresh the DataGrid when the map's extent changes */
/* note that the filter must be explicit set each time; calling render is not enough, */
/* we are filtering on dynamic variables; the DataGrid caching mechanism weren't built for this */
dojo.connect(myMap, "onExtentChange", function (extent, delta, levelChange, lod) {
    myGrid.filter(customQuery: function(item) {
        return myMap.extent.intersects(item.geometry[0]);
   }, true);
});
</code></pre>
</div>
<p>Another, perhaps more interesting option would be to subclass ESRI&#8217;s <a href="http://resources.esri.com/help/webapi/javascript/arcgis/help/jsapi/graphicslayer.htm">GraphicsLayer</a>. Implementing the <a href="http://docs.dojocampus.org/dojo/data/api/Read">Dojo.Data.Read</a> and <a href="http://www.dojotoolkit.org/api/dojo/data/api/Identity.html">Dojo.Data.Identity</a> APIs would allow the DataGrid to be driven directly from the GraphicsLayer feature data attributes.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/mapwrecker.wordpress.com/196/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/mapwrecker.wordpress.com/196/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/mapwrecker.wordpress.com/196/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/mapwrecker.wordpress.com/196/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/mapwrecker.wordpress.com/196/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/mapwrecker.wordpress.com/196/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/mapwrecker.wordpress.com/196/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/mapwrecker.wordpress.com/196/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/mapwrecker.wordpress.com/196/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/mapwrecker.wordpress.com/196/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/mapwrecker.wordpress.com/196/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/mapwrecker.wordpress.com/196/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/mapwrecker.wordpress.com/196/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/mapwrecker.wordpress.com/196/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mapwrecker.wordpress.com&amp;blog=920496&amp;post=196&amp;subd=mapwrecker&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://mapwrecker.wordpress.com/2010/07/21/synchronizing-a-dojo-datagrid-to-a-maps-visible-geometries/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/e68cbde5dbc158d8eceab62caa6fb19f?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Bill Thorp</media:title>
		</media:content>
	</item>
		<item>
		<title>Reprojecting Google Maps with ArcGIS Server</title>
		<link>http://mapwrecker.wordpress.com/2010/06/18/reprojecting-google-maps-with-arcgis-server/</link>
		<comments>http://mapwrecker.wordpress.com/2010/06/18/reprojecting-google-maps-with-arcgis-server/#comments</comments>
		<pubDate>Fri, 18 Jun 2010 08:12:19 +0000</pubDate>
		<dc:creator>Bill Thorp</dc:creator>
				<category><![CDATA[ArcGIS Server]]></category>
		<category><![CDATA[Mercator]]></category>
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://mapwrecker.wordpress.com/?p=185</guid>
		<description><![CDATA[Spherical Mercator tile systems own the public web, but many institutions still prefer Plat-Carre &#8220;geographic&#8221; tiles for their data&#8230;. and for good reason. Projecting geographic coordinates to Plat-Carre is fast and simple: there is no math. So what if you want Google/Bing Maps in Plat-Carre instead of Mercator?? Using ArcGIS Server? ArcGIS can clearly reproject [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mapwrecker.wordpress.com&amp;blog=920496&amp;post=185&amp;subd=mapwrecker&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Spherical Mercator tile systems own the public web, but many institutions still prefer Plat-Carre &#8220;geographic&#8221; tiles for their data&#8230;. and for good reason.  Projecting geographic coordinates to Plat-Carre is fast and simple:  there is no math.   So what if you want Google/Bing Maps in Plat-Carre instead of Mercator??  Using ArcGIS Server?</p>
<p>ArcGIS can clearly reproject raster imagery; the trick to getting these Mercator tiles into ArcGIS Server.  <em>The solution is to pretend that these tiles come from *another* ArcGIS Server.</em>  I&#8217;ve <a href="http://mapwrecker.wordpress.com/2010/02/26/arcgis-desktop-eats-tiles/">written</a> <a href="http://mapwrecker.wordpress.com/2010/02/27/mocking-arcgis-server-with-wcf/">about</a> creating custom code to impersontate ArcGIS Server for feeding ArcGIS Desktop.  Using this method, its quite simple to create an MXD that consumes Google Earth tiles, and then publish this to ArcGIS Server.  (Note that this must be published as an MXD, MSD-based services allow only local data).</p>
<p>Summarizing the basics here we have 1) getting tiles into ArcGIS Server for reprojection 2) reprojecting and delivering these tiles with ArcGIS Server.  The first part is accomplished by pretending to be ArcGIS Server, while the second step is performed by an actual ArcGIS Server.  I&#8217;ll spare the lecture on how actually doing this would violate dozens of laws, copyrights, terms of use, etc&#8230;.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/mapwrecker.wordpress.com/185/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/mapwrecker.wordpress.com/185/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/mapwrecker.wordpress.com/185/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/mapwrecker.wordpress.com/185/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/mapwrecker.wordpress.com/185/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/mapwrecker.wordpress.com/185/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/mapwrecker.wordpress.com/185/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/mapwrecker.wordpress.com/185/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/mapwrecker.wordpress.com/185/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/mapwrecker.wordpress.com/185/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/mapwrecker.wordpress.com/185/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/mapwrecker.wordpress.com/185/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/mapwrecker.wordpress.com/185/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/mapwrecker.wordpress.com/185/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mapwrecker.wordpress.com&amp;blog=920496&amp;post=185&amp;subd=mapwrecker&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://mapwrecker.wordpress.com/2010/06/18/reprojecting-google-maps-with-arcgis-server/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/e68cbde5dbc158d8eceab62caa6fb19f?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Bill Thorp</media:title>
		</media:content>
	</item>
		<item>
		<title>Best XSD tools?</title>
		<link>http://mapwrecker.wordpress.com/2010/05/10/best-xsd-tools/</link>
		<comments>http://mapwrecker.wordpress.com/2010/05/10/best-xsd-tools/#comments</comments>
		<pubDate>Mon, 10 May 2010 11:47:13 +0000</pubDate>
		<dc:creator>Bill Thorp</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://mapwrecker.wordpress.com/2010/05/10/best-xsd-tools/</guid>
		<description><![CDATA[I&#8217;m trying to deal with a XML metadata specification that includes a host of OGC specs, but uses a poorly-authored XSD. This metadata XSD duplicates references to certain nodes from the OGC spec XSDs, but is missing others. I&#8217;m trying to generate come classes from this using the .NET tool &#8220;XSD.exe&#8221;. If I reference the [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mapwrecker.wordpress.com&amp;blog=920496&amp;post=191&amp;subd=mapwrecker&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m trying to deal with a XML metadata specification that includes a host of OGC specs, but uses a poorly-authored XSD.  This metadata XSD duplicates references to certain nodes from the OGC spec XSDs, but is missing others.  I&#8217;m trying to generate come classes from this using the .NET tool &#8220;XSD.exe&#8221;.  If I reference the OGC specs, my code-generation tools complain about duplication.  If I don&#8217;t, my tools complain about missing classes. </p>
<p>Can anyone recommend any XSD-cleanup tools or processes?  Thanks in advance.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/mapwrecker.wordpress.com/191/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/mapwrecker.wordpress.com/191/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/mapwrecker.wordpress.com/191/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/mapwrecker.wordpress.com/191/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/mapwrecker.wordpress.com/191/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/mapwrecker.wordpress.com/191/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/mapwrecker.wordpress.com/191/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/mapwrecker.wordpress.com/191/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/mapwrecker.wordpress.com/191/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/mapwrecker.wordpress.com/191/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/mapwrecker.wordpress.com/191/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/mapwrecker.wordpress.com/191/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/mapwrecker.wordpress.com/191/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/mapwrecker.wordpress.com/191/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mapwrecker.wordpress.com&amp;blog=920496&amp;post=191&amp;subd=mapwrecker&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://mapwrecker.wordpress.com/2010/05/10/best-xsd-tools/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/e68cbde5dbc158d8eceab62caa6fb19f?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Bill Thorp</media:title>
		</media:content>
	</item>
		<item>
		<title>We&#8217;re all graphic artists now</title>
		<link>http://mapwrecker.wordpress.com/2010/03/27/were-all-graphic-artists-now/</link>
		<comments>http://mapwrecker.wordpress.com/2010/03/27/were-all-graphic-artists-now/#comments</comments>
		<pubDate>Sat, 27 Mar 2010 21:37:08 +0000</pubDate>
		<dc:creator>Bill Thorp</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://mapwrecker.wordpress.com/?p=189</guid>
		<description><![CDATA[The latest Photoshop video is solidly amazing. Content Aware Filtering reminds me of the Discrete Cosine Transform image processing I did back in college; its nice to see this finally hit the commercial realm.<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mapwrecker.wordpress.com&amp;blog=920496&amp;post=189&amp;subd=mapwrecker&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>The <a href="http://www.popsci.com/technology/article/2010-03/video-photoshops-content-aware-fill-makes-lets-you-retouch-images-seconds">latest Photoshop video</a> is solidly amazing.  Content Aware Filtering reminds me of the <a href="http://en.wikipedia.org/wiki/Discrete_cosine_transform">Discrete Cosine Transform</a> image processing I did back in college;  its nice to see this finally hit the commercial realm.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/mapwrecker.wordpress.com/189/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/mapwrecker.wordpress.com/189/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/mapwrecker.wordpress.com/189/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/mapwrecker.wordpress.com/189/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/mapwrecker.wordpress.com/189/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/mapwrecker.wordpress.com/189/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/mapwrecker.wordpress.com/189/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/mapwrecker.wordpress.com/189/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/mapwrecker.wordpress.com/189/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/mapwrecker.wordpress.com/189/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/mapwrecker.wordpress.com/189/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/mapwrecker.wordpress.com/189/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/mapwrecker.wordpress.com/189/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/mapwrecker.wordpress.com/189/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mapwrecker.wordpress.com&amp;blog=920496&amp;post=189&amp;subd=mapwrecker&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://mapwrecker.wordpress.com/2010/03/27/were-all-graphic-artists-now/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/e68cbde5dbc158d8eceab62caa6fb19f?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Bill Thorp</media:title>
		</media:content>
	</item>
		<item>
		<title>Mocking ArcGIS Server with WCF</title>
		<link>http://mapwrecker.wordpress.com/2010/02/27/mocking-arcgis-server-with-wcf/</link>
		<comments>http://mapwrecker.wordpress.com/2010/02/27/mocking-arcgis-server-with-wcf/#comments</comments>
		<pubDate>Sat, 27 Feb 2010 13:33:28 +0000</pubDate>
		<dc:creator>Bill Thorp</dc:creator>
				<category><![CDATA[ArcGIS Server]]></category>

		<guid isPermaLink="false">http://mapwrecker.wordpress.com/?p=177</guid>
		<description><![CDATA[I mentioned this yesterday; today I&#8217;ll fill in some of the details&#8230;. ArcGIS Server ships with WSDLs. They&#8217;re pretty nice, really. You can hit them with your favorite stick (svcutil.exe comes to mind) and you&#8217;re got a pretty nice client library for talking to ArcGIS Server. With the same stick, could equally created a web-service [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mapwrecker.wordpress.com&amp;blog=920496&amp;post=177&amp;subd=mapwrecker&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I <a href="http://mapwrecker.wordpress.com/2010/02/26/arcgis-desktop-eats-tiles/">mentioned this yesterday</a>; today I&#8217;ll fill in some of the details&#8230;.</p>
<p>ArcGIS Server ships with <a href="http://en.wikipedia.org/wiki/Web_Services_Description_Language">WSDLs</a>.  They&#8217;re pretty nice, really.  You can hit them with your favorite stick (<a href="http://msdn.microsoft.com/en-us/library/aa347733.aspx">svcutil.exe</a> comes to mind) and you&#8217;re got a pretty nice client library for talking to ArcGIS Server.  With the same stick, could equally created a web-service that looks just like ArcGIS Server.</p>
<p>Some tech tips:  <em>Not much tweaking is necessary to get svcUtil-generated code up and running.</em>  Note that ArcDesktop uses the same <a href="http://www.oreillynet.com/xml/blog/2002/11/unraveling_the_mystery_of_soap.html">SoapAction</a> header for all AGS requests.  In <a href="http://msdn.microsoft.com/en-us/netframework/aa663324.aspx">WCF</a>, this means you need a custom <a href="http://msdn.microsoft.com/en-us/library/aa395223.aspx">Route Dispatching</a> behaviour.  Verify that you&#8217;re using <a href="http://msdn.microsoft.com/en-us/library/ms731361.aspx">basicHttpBinding</a> in your web.config.  Also, watch your namespaces&#8230;  initial requests come in looking for ArcGisServer/9.0, later namespaces will reference your current version.</p>
<p>That&#8217;s it.  Now when can I see this in MapServer and GeoServer?  In the Cloud? </p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/mapwrecker.wordpress.com/177/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/mapwrecker.wordpress.com/177/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/mapwrecker.wordpress.com/177/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/mapwrecker.wordpress.com/177/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/mapwrecker.wordpress.com/177/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/mapwrecker.wordpress.com/177/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/mapwrecker.wordpress.com/177/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/mapwrecker.wordpress.com/177/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/mapwrecker.wordpress.com/177/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/mapwrecker.wordpress.com/177/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/mapwrecker.wordpress.com/177/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/mapwrecker.wordpress.com/177/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/mapwrecker.wordpress.com/177/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/mapwrecker.wordpress.com/177/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mapwrecker.wordpress.com&amp;blog=920496&amp;post=177&amp;subd=mapwrecker&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://mapwrecker.wordpress.com/2010/02/27/mocking-arcgis-server-with-wcf/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/e68cbde5dbc158d8eceab62caa6fb19f?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Bill Thorp</media:title>
		</media:content>
	</item>
	</channel>
</rss>
