enjoy futuristic design, UI, get inspired by the movie Oblivion for your next project…
Author Archives: ssumbera
JSON in/out in C# not anymore rigid
Very nice and concise summary of the using dynamics, ExpandoObject and JSON.net for easy serialization/deserialization of JSON in C# – finally using JavaScript-like (dynamic) access to JSON members. http://thewayofcode.wordpress.com/2012/09/18/c-dynamic-object-and-json-serialization-with-json-net/
Tiled WMS overlay in Windows Phone 8
Update May 2014: version for Windows Phone 8.1 is here: http://blog.sumbera.com/2014/05/23/wms-overlay-on-windows-8-1-and-windows-phone-8-1/
Looking on Windows Phone 8 Map SDK, I have tried to migrate a simple WMS overlay from Windows Phone 7 (Bing map) – blogged here : http://blog.sumbera.com/2010/11/07/tiled-wms-overlay-in-windows-phone-7/
Changes :
– for migration you have to add before migration System.Core into the project (had to edit manualy proj file and add it there)
-Change from *.Controls.Map to *Map.Controls
– XAML definition
<maps:Map x:Name="sampleMap" LandmarksEnabled="False" Loaded="sampleMap_Loaded" CartographicMode="Hybrid" Center="49.320574,16.68942" ZoomLevel="14" />
Loading TileSource:
private void sampleMap_Loaded(object sender, RoutedEventArgs e)
{
MapsSettings.ApplicationContext.ApplicationId = "<applicationid>";
MapsSettings.ApplicationContext.AuthenticationToken = "<authenticationtoken>";
TileSource wmsTileSource = new WMSTile();
sampleMap.TileSources.Add(wmsTileSource);
}
..then in your TileSource you can use as usual your method GetUri.
Sample code based on Microsoft Sample can be downloaded here: www.sumbera.com/lab/WP8/WMSonWP8.zip
Google iOS Map SDK v.1.1.0 released for public
Google has released its new iOS map SDK for public.
Few quick test and it shows this:
– SDKDemos sometimes freezes when using Satellite/Hybrid map
– no direct support for tile overlays, see also this:
-nice 3D building appear in certain cities
-supports rotation and tilting
-they have created their own API making transition form MapKit not smooth (unlike MapQuest iOS map API that is drop-in replacement for MapKit )
in summary : nice, smooth maps, that sometime freezes whole app. Tested on iPad3

Back to the feature phone

reverted to feature phone after 5 years of iPhone addiction. Here is my new phone. Great features:
– no more reading and responding to emails in my private time
– no more reading flipboard (tech crunch, CNET..)
– looking forward for the next day email surprises
– smaller and lighter than iPhone 5 or 6 🙂
-no more twitter (btw. I have removed all my tweets and followers, sorry my flowers…, left only linkedIn and wordpress)
– killing feature : battery life up to several days
– very fast, focus on 3 single tasks done: phone , sms , alarm
– absolute differentiation from all touch-based phones
– 5 Mpix camera as on my last iPhone (4) with autofocus
-supports USB mass storage and microSD card
– price : 90 USD
🙂
nice article back to feature phones
iKatastr.cz 500T visits

iKatastr 25 months statistics
Following graphs shows more than 2 years overview of project iKatastr on various platforms – web site, iOS, Android. Project iKatastr does simple stuff – shows cadastral map and enables user to tap on map and get information from the parcel registry (e.g. owner) in Czech Republic. Except Android version, all started at the same time 2 years ago for web, iPhone and iPad. All of the users of iKatastr are solely Czech consumers and thus reflect situation in the Czech app stores and web.
first graph shows how monthly sessions have evolved. Original thought that mobile launch of app iKatastr would boost web site visit failed. However after 15 months of runing iKatastr.cz web site and rephrasing some keywords for SEO it started dramatically to gain visits. Decline of iOS version in last 4 months is caused most likely by new project iKatastr2 that replaces the original one on iOS. iKatastr2 statistics is not yet revealed here.
second graph shows distribution of sessions among all platforms of iKatastr. 75% of all iKatastr sessions comes from mobile devices, while only 25% comes from web.
WMS overlay in iOS MapKit
update May 2014: iOS7 version and notes available here: http://blog.sumbera.com/2014/05/17/wms-on-mapkit-with-ios7/

I have crafted really simple and quick code at ESA App dev camp for viewing WMS sources. And as few people questioned me on how to do this, I am posting the full code of the MapView component that takes sample WMS service (Ozone) and overlays this above MapKit.
In github here : https://github.com/Sumbera/WMSoverMapKit
you will find MapViewController that accepts WMS sources stored as array with BBOX %f, %f, %f, %f
-(void) addWMSOverlays: (NSArray*) overlays
this can be called from your rootController:
MapViewController * mapViewController = [[MapViewController alloc] init];
WMSOverlay * wmsOverlay =[[WMSOverlay alloc]
initWithName:@"Ozone" Url:@"http://wdc.dlr.de/ogc/produkt_t?LAYERS=GOME2_O3&
TRANSPARENT=TRUE&
FORMAT=image/png&
STYLES=&
SLD=http%3A%2F%2Fwdc.dlr.de%2Fsld%2FGOME2_O3_sld.xml&
TIME=2012-02-12T00:00:00Z&
SERVICE=WMS&
VERSION=1.1.1&
REQUEST=GetMap&
SRS=EPSG:4326&
WIDTH=256&
HEIGHT=256"
Opacity:0.5];
[mapViewController addWMSOverlays:[NSArray arrayWithObjects:wmsOverlay, nil]];
please note:
#1. that sample code uses experimentaly MKNetworkKit, which has some occasional troubles. You can replace the download method in WMSOverlayView class downloadTile
#2 it uses simple hash for storing tiles on cache.
enjoy
iKatastr2 on 6th place in Křišťálová lupa 2012
- First 3 places has been occupied by popular news applications or national TV app ( hundreds of thousands users).
- 4th place positioned AVG antivirus application for Android. (tens of millions users)
- 5th place took Czech public transit application. (hundreds of thousands users)
- good content provided through OGC standards by national mapping agency (CUZK)
- great user experience for getting job done
- application quality and stability
- focus on local (national) services rather than global
Awarding ceremony was great fun ! it was in the spirit of end of the world in 2012 so stage was styled as cemetery and winners received among other gravestones . Each winner had a chance to say something and then they passed into the black tunnel to ‘the other side’ as the end of the world is planned in 3 weeks.

How to erase iOS6 maps in MapKit
Update: be aware as this is not working on iOS7, however in iOS7 MapKit officially supports to disable base layer !
This blog : http://blog.sumbera.com/2011/09/18/how-to-disable-base-google-maps-in-mapkit/ wrote about how to disable Google maps in MapKit. Now with new iOS6 and brand new Apple maps and OpenGL rendering , the question is how to disable rendering of the base maps without using undocumented functions. Removing whole base layer (VKMapView) is possible but cripples touch handling of the overlays. So here is very simple way how to do this without removing VKMapView – just set opacity of the layer to 0.0. This will erase base iOS6 maps .
+(void) eraseiOS6maps:(UIView*) mapView{
// -- get rendering layer
UIView *rootView = [mapView.subviews objectAtIndex:0];
UIView *vkmapView = [rootView.subviews objectAtIndex:0];
UIView *vkmapCanvas = [vkmapView.subviews objectAtIndex:0];
// -- set opacity to 0.0
[vkmapCanvas.layer setOpacity:0.0];
}
View hierarchy:
MkMapView/UIView/VKMapView/VKMapCanvas MkMapView/UIView/MkScrollContainerView/MkOverlayContainerView/MkOverlayClusterView/<your overlay> MkMapView/UIView/MkAnnotation/... MkMapView/MkAttributionLabel


