Revision as of 16:54, 27 February 2012 by symbianyucca (Talk | contribs)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

Content Handling with Maps API for Java ME

From Nokia Developer Wiki
Jump to: navigation, search

This article explains how to add different types of content to the Map when using Maps API for Java ME API. Also removing and other functionalities included with content are also illustrated in this article.




The [Maps API for Java ME allows to easily embed Nokia Maps service into Java ME applications.

Markers are discussed already in Adding Markers to the Map with Maps API for Java ME article, thus this article will concentrate on other types of content that can be added to the map.

Adding content to the map

Addition to the Markers following content types have class definition included with the Java ME Maps API:

  • Polygon,
  • Polyline,
  • Circle, and
  • Rectangle

Polylines can be constructed by using MapFactory, the constructor takes only one argument, which is array of points for the polyline. after construction you can use the methods provide by the MapPolyline class to modify it, for example you can change the color of the line with setColor method.

GeoCoordinate[] polylinCoord = new GeoCoordinate[4];
polylinCoord[0] = new GeoCoordinate(60.27, 24.81, 0);
polylinCoord[1] = new GeoCoordinate(60.35, 24.70, 0);
polylinCoord[2] = new GeoCoordinate(60.19, 24.57, 0);
polylinCoord[3] = new GeoCoordinate(60.27, 24.81, 0);
MapPolyline polyline = mapCanvas.getMapFactory().createMapPolyline(polylinCoord);

Similarly as Polylines, polygons are constructed with MapFactory, and the constructor also takes the array of points:

GeoCoordinate[] polygonCoord = new GeoCoordinate[3];
polygonCoord[0] = new GeoCoordinate(60.22, 24.81, 0);
polygonCoord[1] = new GeoCoordinate(60.30, 24.70, 0);
polygonCoord[2] = new GeoCoordinate(60.14, 24.57, 0);
MapPolygon polygon = mapCanvas.getMapFactory().createMapPolygon(polygonCoord);

Circle and rectangle are basically special polygons helper classes. For circle the constructor takes two arguments, which are radius and center. And for the rectangle the only argument taken is bounding box for the rectangle, which is basically area defined by two points, left top point and the bottom right point.

MapCircle myCircle = mapCanvas.getMapFactory().createMapCircle(5000.0,new GeoCoordinate(60.30, 24.70,0));
GeoBoundingBox rectnaglebox = new GeoBoundingBox(new GeoCoordinate(60.35, 24.60,0), new GeoCoordinate(60.25, 24.80,0));
MapRectangle rectnagle = mapCanvas.getMapFactory().createMapRectangle(rectnaglebox);

Z-ordering content

The Z-ordering content is handled simply by using the setzIndex method for each content that needs to be ordered. Giving smaller value in setzIndex will make the content to be drawn under the content that has higher values. For example if you want myCircle to be drawn on top of the rectangle, you can do it with following code:

int markerZ = 1;
int polyZ = 0;

Hiding content without deleting them

Each content item can be hidden by calling setVisible method with Boolean argument set to false value:

boolean vissible = !rectnagle.isVisible();

Removing content

Each content added to the Map display with addMapObject method can be also removed by using removeMapObject method.

mapCanvas.getMapDisplay().addMapObject( myCircle );

Thus if for example myCircle object is added with the code above, it can be later on removed from the Map by using the code shown below.



Full source code illustrating usage for map content types discussed in this article is available here: File:Java MapContent.zip


The Java ME Location API offers rich functionalities that allows to integrate all the main Ovi Maps features in a Java ME application, with just a few lines of code.

68 page views in the last 30 days.

Was this page helpful?

Your feedback about this content is important. Let us know what you think.


Thank you!

We appreciate your feedback.