Elisy Theater declares GeoXaml conception similar to KML supporting by Google Maps.
GeoXaml declares a Canvas inherited class with new LeftLng, TopLat, RightLng and
BottomLat attributes. In Elisy Theater it is the Scene named class declared in Elisy.Theater.Common
assembly. Width, Height, LeftLng, TopLat, RightLng and BottomLat should be specified.
According to these properties viewer calculates both the distinct pixel coordinates
and the scale transform for Scene using current zoom level (level of detail).
GeoXaml and Scenes supports all the Xaml features including animations, transforms,
tooltips etc. These features make it more competitive than traditional KML. The
speed of Xaml rendering will be faster than Kml rendering on Google Maps API. The
simplest GeoXaml you can view at Elisy Theater demonstration. It contains only pure Xaml.
You can also download entire open source solution from downloads page to play. The
following GeoXaml is declared in App.xaml:
<common:scene width="2330" height="3177" leftlng="74.600" toplat="42.875" rightlng="74.625"
bottomlat="42.850">
<Canvas x:Name="KievskyStreet" Width="572.88" Height="13.49"
Canvas.Left="-6.73" Canvas.Top="29.69" RenderTransformOrigin="0.5, 0.5">
<Canvas.RenderTransform>
<TransformGroup>
<RotateTransform Angle="2.22"/>
</TransformGroup>
</Canvas.RenderTransform>
<ToolTipService.ToolTip>
<TextBlock
Text="Kievsky Street"/>
</ToolTipService.ToolTip>
<Path Fill="#FFF4EB47" Data="M
2.56,1.77 L 573.87,1.94 L 572.73,10.82 L 1.09,11.42 L 2.56,1.77 Z"/>
</Canvas>
...
</common:scene>
It draws street on the Virtual Earth overlay and adds tooltip functionality to it.
Please note we have used only one user defined class Scene. All other code is pure
Xaml.
Certainly Elisy Theater will provide the set of new classes like Building, Street,
Railway etc. This approach will allow different themes, the single look&feel style
for all controls etc.
GeoXaml has highly extensible nature allowing storing in DBMS Xml data fields and
querying it. It allows localization, templating, dynamic content generation on the
server side by request.
GeoXaml tile system has many advantages over the traditional bitmap tile system.
For example it allows interactive content, overlapped tiles, tiles of different
sizes, animated tiles. Xaml vector graphics supports best quality in deep zooming
over bitmaps. We can say that traditional bitmap tile system is the subset of GeoXaml
tile system as you can see in Elisy Theater demonstration where each Virtual Earth bitmap
tile is rendered dynamically as Scene with Image in it.
Now GeoXaml has some limitations determined by Silverlight 2 beta 2. For example
by now we have no clear vision of how to reference user defined assembly (or JavaScript,
Python etc.) from GeoXaml returned from the server outside the xap package. This
mechanism will allow user defined interactive xaml content with event handlers.
For example users can specify their own GeoXaml tiles with their own assemblies
(or script code), save it on the server and server will provide it to Elisy Theater
viewer. Silverlight 1.1 Alpha provided this functionality in Xamls and we hope it
will be implemented in Silverlight 2 beta 2.
Currently rated 5.0 by 1 people
- Currently 5/5 Stars.
- 1
- 2
- 3
- 4
- 5