You are here

SUAS MapServer with Mobile Client II

Blog Terms: 

3, MapBrowser & MobileMap

MapBrowser is one raster map viewer and MobileMap
is one vector map viewer, they are open source, you can download the application and source code from http://www.garret.ru/~knizhnik/En_Map.htm
Actually they are not WMS client, the map material are stored as png or vector format in the mobliphone, but you can still get some good ideas about map viewer from the both applications.
No other special functions except move, zoom, and search functions, because all of the data is embeded, the jar size is relative big and can only be run on S60 system.

mapbrowser interface1map browser zoomin
And on the site there is one application named OnlineMap, maybe the author has concidered that combined with map data is not one good solution for the huge data, then he devolopped this to download PNG map from internet and display on the client. It could be seen as one embryo of WMS client.

4, J2meMap

http://j2memap.landspurg.net/J2ME_Downloads.html
J2meMap is one client for GoogleMap, Yahoo!Maps and others map service.
As my view the map service such as Googlemap is very similar as WMS, the difference is that GoogleMap use its own standard but not the OGC WMS standard. But their workflow is same, we could compare the getmap url of googlemap and standard wms. This is one example of googlemap:
http://maps.google.com/?ie=UTF8&ll=44.465151,-94.746094&spn=21.220211,46.40625&z=5&om=1
Notice that ll and z could equal to Bbox parameter in GetMap request of WMS, both of them could locate the map tile. Where are the other parameters of Getmap, such as Format, Layer and SRS, are they not important?
Of course they are important, but for GoogleMap they have already the default value:
Format: PNG
Layer: Map/satellite/hybird
SRS: WGS84(EPSG:4326)
It is not necessary to set the stable value.

J2meMap has the functions that one normal google map client should have:
Browse the entire GoogleMap database
Swith from GoogleMap/Satellite, MSN Virtual Earth Maps, Ask.com and Yahoo!Maps
Switch between satellite or map view
Zoom in/zoom out
Do request to google maps, and show results on
screen
Save your favorite locations
...................................

J2memapPresj2memap load map

From the above image, have you got any idea? I guess that J2meMap uses Multi-Tiles-Loading Method to load map tile, the loaded map tiles fill the gray tiles one by one as you have seen.
J2meMap is not open source but it support API library and you can extend your application with Map service with the help of J2meMap library. Here is one piece of example code:

import tom.map.*;
import javax.microedition.*;
public class MyClass(){
public void startApp(){
earthCanvas ec=new earthCanvas();
ec.goto(x,y); // Not so difficult!
Display.setCurrent(this).setCurrent(ec);
}
public void stopApp(){}
public void pauseApp(){};
}

And you can use WMS layers with J2memap library, a new interface has been defined: MapCustomOverlay

If you create a class that implements MapCustomOverlay, you will have the ability to dsiplay new layers on top of an existing map.
The implementation is easy, there are two methods:
String getTileURL(int x,int y,int z,int sizeSq,boolean isSat);
and
public boolean isTransparent();
The last one just have to return true if transparent, or false
otherwhise. The getTitleUrl must return to URL of a tile to be loaded
at the corresponding x,y positions. sizeSq is the size of a square,
usually 256, while isSat is true if the user is currently displaying a
satellite image.
This can be used to easily create WMS overlay, if you know the URL of a WMS server.

5, MgMaps

Google Map client same as J2memap, you can download the application from http://www.mgmaps.com/
It also uses Multi-Tiles-Loading Method to load map tiles(Not sure). It is not open source.



6, GMapViewer
Similar to those Google Maps clients, GMapViewer is a open source project but a dead project. The software has not been maintained, and
Google has updated their interfaces. If you want to modify GMapViewer
yourself, the code is here: GMapViewer-src.zip. Pretty, is that, you will know how to build one Google map cilent through the code.

7, Google Maps Mobile

Google has its own J2ME client, I am impressed by its fast map loading method, you could try the online demo on this site.
http://www.google.com/gmm/tour.html?hl=en
From those snapshots could you speculate something?
google map client load mapgoogle client load map tilgooglemap client zoom

It seems that it use the Multi-Tiles-Loading Method to load map tiles, but when I tested it on the real mobile phone I found one strange thing: you could compare the first and second image, if it use Multi-Tiles-Loading Method, the loading map tiles should have the same size(width and height), whatever the user move more or less distance; but in second image, the client just only loads the right side tiles where has not the standard size but depends on the distance the user has moved -- this is the feature of Intersected-Tile-Loading Method.
On the mobile phone, if you zoom in quick after you pan the map, not wait for the loading of new map tiles, you will see the map like image 3. The white part in the black rectange is the new tiles that need to be downloaded, notice that those tiles has not same size but depend on your moved distance.
As I considered, it used both methods to load map, do you have any good idea?

8, Esri OpenLS client
This mobile client is devolopped for  Esri OpenLS  product, I haven't used it and I have no chance to get some snapshots of it.

 

Comments

Thanks for the great article. I am highly interested in various kinds of mobile applications so this post will be definitely very useful for me. By the way thanks for the MapBrowser & MobileMap download links. ( I have never noticed that those two are open source). Keep writing good posts and I will be waiting for other nice ones from you in the nearest future.

Sincerely,

Steve Tickson from payday loans online