Map API

Nutiteq Maps Lib SDK enables developing advanced mobile mapping applications.
Platforms: Android, RIM BlackBerry, Java ME (J2ME)
Download maps API SDK »
Untitled Document

Products

» View demos
» Downloads

Latest news

Last at Tue, 6 Dec 2011 18:37:53
Topic: New BlackBerry sample app
See more news »

Frequently Asked Questions

Licensing

Can I use the tools for free?

You can use MGMaps Lib SDK for free within the terms of GPL. It means that you need to license your application also as GPL, i.e. publish also your application source code. For commercial applications we suggest commercial licenses.

What are your commercial licensing options?

In addition to GPL you can choose commercial license option. Basic licensing system is one-time fee per application. With single license you can distribute as many copies of the application as you wish; but if there is different application (for the user) then new license is required. Variations of application for different devices and languages are included in the single license, and do not require additional license. See more information about license pricing from the Pricing page.

Can I get the source codes?

We provide source code based on request to commercial customers and users of GPL license. If you need source package for GPL license option please send email to sales@nutiteq.com and describe shortly your project (contents, developer and distributor) and how will you comply with GPL requirements (e.g. URL where are you publishing your project's source code).

Development

Will it work on Eclipse, NetBeans, BlackBerry JDE, my other IDE?

You can use your favourite IDE, the SDK is not integrated to or dependent to any IDE. However, we suggest to use Eclipse, as we are using this as primary tool and can provide best support with it.

What user interface (UI) platforms do you support?

We suggest our partner J2ME Polish from Enough Software, and provide also license bundles it. It is probably the most advanced mobile UI platform, and they have not only UI: they have also build tools, device database and provisioning platform available. There is also free and new, but yet not so mature LWUIT platform from Sun, and you can use this. Many mobile developers have their own UI platforms for Mobile Java development, you can probably use this also.

How big is the library

The library is designed in a way that unused classes can be automatically removed by the obfuscator. Minimum additional footprint to JAR file is about 50KB. If more features are used (caching, different map types, geocoding, caching etc), then JAR will be also larger.

My application works fine in emulator, in phone gives "license error" instead of maps

When application is started, then library will do on-line query to check validity of the license code. To make application testinge easier then with emulators this check return always "ok", but with real phone it is checked. You should check whether application and vendor names, and license key are exactly the same as provided in the email which had license key.

I get "verification error" message in BlackBerry application

We know, this can be quite a pain. Safest solution would be to use library source instead of binary jar file, and not to use Proguard obfuscator. Please check and follow specific guide what is provided here for BlackBerry specifics. Let us know if it works, or if it does not.

Maps

What map providers Nutiteq uses/supports

Nutiteq library does not include any map data or service, we are independent from map providers. As maps are usually read on-line, then you need two things: map content and acutal map image service. You can use following maps:
a) Use free sources and service. OpenStreetMap and OpenAerialMap default services are built-in to the library. For start they are fine, but for commercial service you may need also quaranteed quality of service and proper support.
b) Use free maps, but commercial server providers. We suggest our partner Cloud Made, which has commercial services with OpenStreetMap data. They have good pricing, including free service options if usage is not too high.
c) Use commercial maps, and commercial service. For global maps the major providers are TeleAtlas and Navteq. In addition to their maps you need commercial map generation service, which can be provided by e.g. deCarta or MapQuest. They have good maps with decent coverage, and good services, just be warned that both maps and services have quite high yearly price tags, especially if you are talking about mobile applications.
d) Use your own map server, if you happen to have the content. We can assist you how.

But I can use Google maps are for free!?

No, because there are two limitations:
a) their Terms of Service allow to use them via Javascript API only. Their Javascript does not work in any mobile, not even in iPhone. Technically the application can use directly their tiles, and many mobile apps do this, but you risk to get Cease and Desist letter from them one nice day. Google Static Maps API does not require javascript, but also its ToS allows to use the map only in web browser (and not in custom mobile application). You cannot get over this limitation even if you have Google Maps Enterprise license.
b) their Terms of Service requires that if you show real-time sensor (i.e. GPS) location data on map, then you need Enteprise license. This means that you need license from Google also for many types of web applications (like real-time friend finder, fleet management etc).

How can I use my own maps?

You have to set up own map tile server to generate and publish map images. OpenStreetMap wiki includes guides how to do it with Mapnik and OSM data, also Mapserver and Geoserver are reasonable free tools for this. When you have the server running, then you have option to let users to download maps on-line, or you can preload maps to the mobile, in either install package (JAR) or to phone's flash drive. Then applicaiton can work even fully offline.

If it sounds too complicated for you, then actually Nutiteq can do it for you. Before we went to the mobile mapping we were already experts in the web mapping.

How can I use OGC WMS map servers?

See Nutiteq Mapper application code, it has one WMS service included using SimpleWMSMap map service. There are a few things to keep in mind in coding:
○ J2ME MIDP states mandatory support for PNG images only. We suggest to use this format, as it works in all mobiles. Usually also JPEG works (but some phones may have problems with that), and JPEG is useful for aerial images. Many phones have problems with GIF format images, so do not use this.
○ SimpleWMSMap must be EPSG:4326 (Longitude-Latitude, WGS84) projection. If you need to use other systems then you can define own custom on-line map. You can check SimpleWMSMap as example code in library source. However, EPSG:4326 is probably the most common projection in most WMS servers, so no need not to worry about this.
○ If you use right projection, but still maps look streched, then try to use "setWidthHeightRatio" method with value 2 or 1.

Maps look slow, can I get them faster?

The problem with mobile data connection is, that every HTTP connection which is needed to load a map tile takes some time, and also data overhead (could be 1 KB per request). It is especially issue with smaller tiles. So it is reasonable to combine all map tile requests into one HTTP request. Good thing is that MGMaps SDK supports it, and it really enhances server performance significantly.

For the server implementation, check out MGMaps Server API document in the developers page. In client-side client you need just following line of code (with CloudMade maps):
mapItem.setMap(new
NutiteqStreamedMap("http://aws.nutiteq.com/mapstream.php?cmkey=YOUR-CLOUDMADE-KEY&", "CloudMade", 64, 0, 19));

You can use also parameter s to set CloudMade style number (default
s=1), so you can define base URL as
"http://aws.nutiteq.ee/mapstream.php?cmkey=YOUR-KEY&s=2&" for mobile tiles.
However, this particular proxy is for development (and demos) only, and it is unsupported. But CloudMade will soon have it built-in into their own server and then Nutiteq's streaming proxy is not needed then anymore.

Search and routing

Yes, it is called GeoCoding. Note that for geocoding there must be also server which actually serves the searches. The sample applications are using Nutiteq's server (lbs.nutiteq.com), and there is working Cloud Made service behind it; but you cannot use this method in commercial application. For commercial application you should define your own search server URL.

Can MGMaps library do navigation?

The library includes simple on-line navigation features: application can show route on map, with specific turn points. It is not really dynamic 3D navigation, comparable to the satnav devices, but it is suitable for e.g. pedestrians, or occasional use while driving. The navigation needs also on-line server for actual route calculations, the library supports Cloud Made and Yournavigation servers, and you can define your own server for it.

Positioning

What GPS devices are supported?

- All internal standard Java API GPS-s (JSR-175)
- External Bluetooth GPS-s which have JSR-175 API (in most Nokia S60 phones)
- External Bluetooth GPS via Java Bluetooth API, when exernal GPS provides NMEA serial interface. Most extenal Bluetooth GPS-s are expected to work fine, we have tested with e.g. Holux 1200, and with some other devices.

What devices support Cell-ID positioning?

Cell-ID works with SonyEricsson java-phones since version 7.3 (i.e. most phones less than 3 years old), on Blackberries and some Motorola phones. In Blackberry and Motorola it requires signing of application. There is longer story in separate slideshow in here.

Do you support Mobile Positioning of operator (MPS)?

Yes, we have application Nutimap, which is running as commercial mobile operator service, and which uses mobile positioning of the operator (they have CGI+TA and A-GPS methods). However, this is very dependent on particular operator, as you need to have specific agreement with them; also there is no standard API to get the location, each operator has own. So the feature is not integrated to the library SDK.

Device/Phone support

What phones are supported?

Following are groups of phones where for which the SDK is targeted to:
- Nokia Series 40 MIDP 2.0 phones (over 130 devices)
- Sony-Ericsson MIDP 2.0 phones (over 50 devices)
- Nokia Series 60 phones with MIDP 2.0
(over 70 devices)
- Samsung feature-phones and Series 60 smartphones
- Motorola feature-phones
- BlackBerry with OS 4.0 and newer (over 20 devices)
- Google Android
- Windows Mobile 5.0, 6.0 and up smartphones with
Intent, Esmertec, Sun or IBM JVM

We have specific list of supported and tested devices available, email jaak@nutiteq.com to get the latest update.

Do you support iPhone?

Yes, Nutiteq can provide mobile mapping applications also for iPhone. The MGMaps SDK is Mobile Java specific, but for iPhone there are some other tools available, and we would use these. So we can do application which works with

Do you do Windows Mobile or Symbian native applications?

The J2ME and MGMaps SDK applications works quite fine with all Symbian devices, so Symbian native application has no advantages here. Also all Windows Mobile devices have J2ME included, and our library works on these. However, J2ME in some WinMobile devices could be limited (e.g. you cannot get GPS location), it really depends what the final application does. We have also some solutions to overcome Windows Mobile limitations.

Do you support Brew?

No, not yet. If you are interested in this platform, please email jaak@nutiteq.com and we will see how we could help with it.

Other features

Do you do 3D maps?

This is in our roadmap.

Do you do voice navigation?

This is in our roadmap.

Nutiteq Services

Can you implement the application for me?

Yes, Nutiteq would be happy to assist you with this. We have experienced Mobile developers (Java, iPhone etc) available for it. Please email your needs to jaak@nutiteq.com and we will do you offer for this.

Do you do training?

We plan to have webinars for developers. Please register as web page user to receive news about it. We can also provide custom one-day trainings as per request.