Using ArcGIS map layer(s).

Jan 6, 2009 at 5:40 PM
Does anybody know anything about ArcGIS? I am exploring the feasibility of using one or more ArcGIS layers within DeepEarth.
My intention is to make DeepEarth work solely with ArcGIS data (currently it's the out-of-box VE).

If this is possible (without too much re-factoring) then the question of Projection will likely come in... but i will hold that question until it is necessary.

Thanks!
Jan 6, 2009 at 8:02 PM
I am extracting layers from an ArcGIS MSSQL database and displaying them on the map.  But I don't get the base layer imagery from ESRI.

Is this what you are looking for?
Jan 6, 2009 at 8:21 PM
I would like to display any layer that is of ArcGIS format.

If you can display an ArcGIS layer from a database, then you have the ability to display a layer(s) from ESRI???
Jan 6, 2009 at 8:38 PM
How difficult is it to integrate ArcGIS layers into Deep Earth?
Was that a separate data provider, or are you somehow redirecting Virtual Earth to hit your ArcGIS server?

Any snippets, tutorials, or samples would be of tremendous help.
Thanks!
Coordinator
Jan 6, 2009 at 10:35 PM
We are currently planning / prototyping this functionality. The plan is to support WKB, WKT, KML and ESRI Shapefiles. I suspect we will not support every feature initially but support will grow in time as people donate time and code.
As you can imagine there is some complex work involved to make this run in a high performance manner, we will certainly be using many of the deepzoom (Seadragon) concepts to do this.

Currently you can create points, polylines and polygons only in code but the next major version will have import/export capabilities as well as drawing/edit tools. We will start commiting code later this month with a release in Feb. If your interested in being a tester please keep in touch and post your thoughts/ideas and feedback on these forums. Thanks!
Jan 6, 2009 at 10:44 PM
It certainly would've been very awesome to have a way to leverage ArcGIS maps and layers. I'll keep a close eye on the progress of DeepEarth though. I've been messing with it quite a bit already!

Thanks.
Developer
Jan 7, 2009 at 4:41 AM
Edited Jan 7, 2009 at 4:43 AM
As soulsolutions mentions, we're working on an ESRI data provider now.  I'm running into a few weird issues mainly due to their not-so-well published tiling API, but making pretty good progress.  This is something that I need for my 'day job' too and it must work with any layer that is served up via ArcGIS Server 9.3+. 

I've been prototyping this a little over the holidays and should have something soon for the next release as soulsolutions also mentioned.  The approach being taken is akin to that of ESRI's FLEX API (just a lot better since it'll be in Silverlight here) so it will consume ArcGIS Server data (hopefully any service type) via REST and their geometry services via REST within DeepEarth classes. 

We'll definitely need some help testing, so post away!
Jan 7, 2009 at 3:10 PM
Thank you for your input. FYI, I was told that ArcGIS will have a Silverlight component within a year.
Regardless, having ArcGIS support in DeepEarth would be amazing... i am looking forward to it!
I knew ArcGIS has support for Flex, but what i didnt realize was that Flex is being used to actually render the layers.

In the meantime i am approaching my ArcGIS + Silverlight needs via another solution that utilizes a much simpler approach (directly using MultiScaleImage control(s)) and displaying the ArcGIS layer(s).

Thanks again!
Developer
Jan 8, 2009 at 3:46 AM
I am very interested in becoming a part of this team especially around the ArcGIS efforts whether this involves testing or contributing code.  I'm new to ArcGIS so I've got a lot to learn but we're using it in the group I'm in and this would be a great opportunity to contribute.  I've been in touch with skulavik and looked at his TileLayer but if there is anything I can focus on, just let me know.
Developer
Jan 12, 2009 at 6:05 AM
Edited Jan 12, 2009 at 6:12 AM
Well, as it turns out, this is quite a challenging process. The issues that are hard to tackle for an ESRI provider are those that have to do with viewport origins, spatial references, and projection differences from DeepEarth to ESRI's MapServer.  Luckily, the direction that DeepEarth is headed for release 1.1 directly addresses these issues and they should allow us to simultaneously address and ESRI tile provider and spatial reference and projection issues.

On a related note, I'm still heading down the route of producing an ESRI tile provider the 'mimics' the ESRI Flex provider in anticipation of ESRI releasing a Silverlight API (pretty much guaranteed) soon.  Here's the tileprovider directory skeleton.
Jan 12, 2009 at 4:41 PM
I have my ArcGIS layer set to use WGS 84 for standard use with Virtual Earth. What I want to do is click in Deep Earth (which is displaying regular VE tiles without any ArcGIS involvement) and then pass the coordinates of the clicked point to the ArcGIS server's Identity web service method. Do you have any insight on how to convert the coordinate systems?
Developer
Jan 13, 2009 at 5:28 AM
Hey Colin,
Well, you should actually be able to obtain the WGS84 lat/long from the map control in VE in the code behind the XAML. The map is driven by the MapPoint Web Service which returns all calls for coordinates in WGS84 lat long.
Additionally, if you're calling the SOAP or DCOM interface of ArcGIS Server with the identify command, you can call the Project() method of the IGeometry interface to be sure that the coordinates you pass to the identify are in WGS84 before you execute the identify.
Jarrod


From: ColinBlair <notifications@codeplex.com>
To: jcskulavik@yahoo.com
Sent: Monday, January 12, 2009 9:41:33 AM
Subject: Re: Using ArcGIS map layer(s). [deepearth:43552]

From: ColinBlair

I have my ArcGIS layer set to use WGS 84 for standard use with Virtual Earth. What I want to do is click in Deep Earth (which is displaying regular VE tiles without any ArcGIS involvement) and then pass the coordinates of the clicked point to the ArcGIS server's Identity web service method. Do you have any insight on how to convert the coordinate systems?

Feb 4, 2009 at 10:14 PM
Edited Feb 4, 2009 at 10:15 PM
Here are some quick steps if you have the ability to create your own services on an ArcGIS server:

1) Setup your ArcGIS server according to the instructions at http://webhelp.esri.com/arcgisserver/9.3/dotNet/index.htm#designing_overlay_gm_mve.htm
2) The url to the tiles will be http://server/ArcGIS/rest/services/ServiceName/MapServer/tile/{Z}/{Y}/{X}

For testing purposes I just replaced the existing url in the OamTileSource with http://localhost/ArcGIS/rest/services/DETest/MapServer/tile/{Z}/{Y}/{X}. The difference here is that the ArcGIS server is setup to generate tiles the same way that Virtual Earth does so there isn't anything special needed in the TileSource.
Coordinator
Feb 4, 2009 at 10:19 PM
Nice work Colin.
Developer
Feb 4, 2009 at 10:25 PM
Colin,

That is indeed the approach I'm shooting for with the ESRI TileSource via their REST API.  If you happen to figure out how to apply those calls to their free services (not specific to a specific install of ArcGIS Server) please post that to this discussion board for everyone.  I've been working to develop the TileSource provider that calls those services, but there is an MSI offset issue that I've not had time to figure out.

Thanks,
Jarrod
Feb 5, 2009 at 1:20 PM
Hey Guys,

I just wanted to mention, there is another Codeplex project, SharpMap - http://www.codeplex.com/SharpMap
- which renders ESRI Shape Files. I have been using it on a project for awhile.

Wanted to throw that out there, as it might provide a way of getting ESRI shape file support into DeepEarth.

-Andy
Feb 5, 2009 at 4:28 PM

Hi,

I’m kind of new to C# and ignorant, but I noticed that Morten has a useful .shp importer for SQL Server: http://www.sharpgis.net/page/Shape2SQL.aspx

I gather SQL Server is supporting GML as the basic transfer format. So in theory http://www.gdal.org/ogr/ogr_formats.html gives SQL Server access to the whole gamut of GIS vector formats via GML. I have not tried it yet. Of course there are always some version issues with GML. Ogr2ogr supports just a subset GML 2.0. I assume SQL server supports a different subset/version of GML, hopefully overlapping.  GeoServer, for example, supports GML 2.1.2. It will be interesting to see how well GML will mix and match with itself.

I’m looking forward to playing with DeepEarth1.5 and SQLServer spatial query capability. Actually using an OGC WMS/WFS/WCS middle tier like GeoServer makes things even better since it can mediate lots of spatial DB possibilities (PostGIS, Oracle, and MySQL) as well as chain other OGC services. If DeepEarth1.5 geometry layers will consume GML out of MS SQL Server it can probably make use of GML out of an OGC server too. At least the GML can be proxied into whichever GML subset/version DeepEarth will consume, theoretically.

               

As far as Census Tract polygons:

This intriguing possibility from the Bureau of the Census has been around for several years now:

“Eventually, we will also release TIGER spatial data in GML (TIGER/GML™), and over the web on WebTIGER™ as a Web Feature Server (WFS) and a Web Map Server (WMS).”

However, it seems less and less likely that the Census Bureau will actually provide this as a service anytime before the next decennial if at all.

rkgeorge             

From: AndyBeaulieu [mailto:notifications@codeplex.com]
Sent: Thursday, February 05, 2009 6:21 AM
To: rkgeorge@cadmaps.com
Subject: Re: Using ArcGIS map layer(s). [deepearth:43552]

From: AndyBeaulieu

Hey Guys,

I just wanted to mention, there is another Codeplex project, SharpMap - http://www.codeplex.com/SharpMap
- which renders ESRI Shape Files. I have been using it on a project for awhile.

Wanted to throw that out there, as it might provide a way of getting ESRI shape file support into DeepEarth.

-Andy

Read the full discussion online.

To add a post to this discussion, reply to this email (deepearth@discussions.codeplex.com)

To start a new discussion for this project, email deepearth@discussions.codeplex.com

You are receiving this email because you subscribed to this discussion on CodePlex. You can unsubscribe or change your settings on codePlex.com.

Please note: Images and attachments will be removed from emails. Any posts to this discussion will also be available online at codeplex.com

Feb 5, 2009 at 4:49 PM
I am afraid I don't have enough understanding to figure out the free ArcGIS online services. I think the problem is mostly with the tiling ratios.
Feb 25, 2009 at 6:21 PM
Any update with this functionality?  Sample project that uses ArcGIS to overlay census data on a map? 
Feb 25, 2009 at 6:44 PM
ESRI themselves will be releasing their Silverlight map control to beta next month. Looking at the preview videos it looks really slick.
Feb 25, 2009 at 6:47 PM
We don't have $50k to shell out unfortunately.
Feb 26, 2009 at 8:45 AM
There is already a prototype ESRI Silverlight map control available now - discussed in http://mrrichie.spaces.live.com/blog/cns!DD16C3F34F4D913E!1841.entry and source downloadable from http://resources.esri.com/arcgisserver/adf/dotnet/index.cfm?fa=codeGalleryDetails&scriptID=15746

It also use multiple MSI controls for the different overlay layers - something I'd personally like to see in DeepEarth.
Mar 12, 2009 at 10:35 AM
I tired the "Easy" way with ArcGIS9.3 Rest services by just transforming the WMS provider to use the ArcGIS "Export Map" function in the following way :
http://GISServer/ArcGIS/rest/Services/MyService/MapServer/export?f=image&bbox={0},{1},{2},{3}&size={4},{4}&format=png"

this works just with the following problem - tiles received have an overlap area in the south/north edges. After deeper investigation we found the following comment in ESRI ArcGIS9.3 REST API ExportMap documentation :
"Note that the extent displayed in the exported map image may not exactly match the extent sent in the bbox parameter when the aspect ratio of the image size does not match the aspect ratio of the bbox.  The aspect ratio is the height divided by the width.  In these cases the extent is re-sized to prevent map images from appearing stretched.  The exported map’s extent is sent along with the json and html responses and may be used in client side calculations. So it is important that the client-side code update its extent based on the response."

checking the aspect ratio of the request bbox i found it verys between 0.84 to 0.83 and this is very far from the requied 1 that is receided from tile size of 256x256.

Using the ArcGIS cache generation which can create the tiles in the same scheam used by VE or GoogleMaps(http://webhelp.esri.com/arcgisserver/9.3/dotNet/index.htm#designing_overlay_gm_mve.htm)  is not an option for us as we have feature layers which are dynamic source from our DB.
Nov 9, 2010 at 6:58 PM

Hi.  This thread has been dead for some time, but I wanted to revive it, with a small nuance.  We are attempting to consume an ArcServer REST Service (from a third party) in Deep Earth.  We prefer to use the REST service because it is of higher quality than what the provider pumps out as WMS. 

ArcServer produces tiles in State Plane Coordinate Systems, and not lat/lon.  However, we do not know how to interpret this so that we can properly place the tile inside our DeepEarth application.  The only thing we can think about doing is somehow write a function that converts the State Plane coordinate we get from the REST service into lat/lon, and then apply the appropriate scale factors and translation of the origin to our Deep Earth application.  I am pretty certain that DeepEarth does not have anything built in that would allow us to automatically transform a State Plane representation of the tile into lat/lon (like using an EPSG code), nor do I think that DeepEarth has the capability to just handle State Plane as its own reference (as, say, using an EPSG code) within some kind of definition (I really hope I am wrong and have overlooked something).  

Does anyone have advice as to how to get a State Plane tile coming from ArcServer to work within DeepEarth.

Developer
Nov 9, 2010 at 7:09 PM

DeepEarth Uses this Tile System http://msdn.microsoft.com/en-us/library/bb259689.aspx

I think you are correct and will have to write some functions to convert back and forth from one Tile system to the other

Someone else may have better advice/ideas?