Author Archives: ssumbera

Tiled WMS overlay in Windows Phone 8

WP8WMSUpdate 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

Screen Shot 2013-02-24 at 11.34.21 AM Screen Shot 2013-02-24 at 11.35.15 AM

Link

Back to the feature phone

Samsung

 

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 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.

iKatastr-25months-stat

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.

iKatastr-25months-stat2

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

I am excited   that  project I have been working on at Intergraph called ” iKatastr2″  has placed on  6th position in category “Mobile service” in national competition called “Kříšťálová lupa 2012” (Czech Internet Prize)
 
  • 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)
 
iKatastr2 was the only map/geospatial-related application  nominated
few reasons for success are :
  •  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