my project is specialized on location based services, especially on locating the device very precisely.
My platform is:
- SDK: Nokia SDK 1.0 for Java (Nokia_SDK_1_0_Java)
- Java ME
- Netbeans IDE 7.4
- device: Nokia X2-02 Dual Sim, FW: V 11.79 (15-08-12 / RM-694)
To acheive a good result locating the device (my main goal), I used different features that my device supports.
At first, I fetched the Cell ID, Location Area Code, MCC, MNC to send them via an API to a server holding a database of several cell towers around the world, giving me a good approach on where the device is located currently. Additionaly, I could use the feature of having dual sim, so that I can further examine somehow a mean value of two coordinates locations.
Dual SIM - Java Developer's Library
- com.nokia.multisim.cellid.sim1 and com.nokia.multisim.cellid.sim2
- com.nokia.multisim.countrycode.sim1 and com.nokia.multisim.countrycode.sim2
- com.nokia.multisim.lac.sim1 and com.nokia.multisim.lac.sim2
- com.nokia.multisim.mnc.sim1 and com.nokia.multisim.mnc.sim2
The next approach was to use the LocationUtil:
Determining Current Location via Cell ID - Nokia Developer Wiki
This gives me great accurate location, what I realized after having entered the coordinates of the "GetCellIdCoordinates.jar" example (link above) in some maps application.
Using the "HERE Maps API for Java ME" demos > Locate the device, this gives me the same location and a circle with ca. 200m to 250 m radius (once it has contained my real position, once it did not but was close to it)
nokia-developer / here-maps-component-demos: https://github.com/nokia-developer/h...omponent-demos
So I see the HERE Maps API uses an API key that is free of charge to get, only for the maps tiles, not for the services like locating.
I tried to compile the example (here-maps-component-demos, link above) using Netbeans, however it reported some missing files like maps-core.jar, which was explained to be within a plugin folder, precisely in "C:\Nokia\Devices\Nokia_Asha_SDK_1_0\plugins\maps api\lib" that does not exist on my machine because I use an other SDK, namely Nokia_SDK_1_0_Java which does not contain such a jar file or any similar. However, I know it has to be possible to launch an application using the HERE Maps API because I executed the compiled jar "HEREMapsComponentDemos.jar" successfully on my device Nokia X2-02 Dual SIM. So I found an application called "MapsComponentDemos" which seems to be identical to the HERE Demo App. except that it contains the required files in /lib. The location example is located under "MapsComponentDemos\src\com\nokia\maps\example\location" (LocationFinder.java)
Location Services - Here Maps Component Demos - Java Developer's Library > "Download MapsComponentDemos"
I see the data calls:
location.getQualifiedCoordinates().getLatitude(); // Lat
location.getQualifiedCoordinates().getLongitude(); // Lon
location.getQualifiedCoordinates().getHorizontalAccuracy(); // the radius
This should be a short summary of what I acheived and for everybody's purpose on how to locate the device very accurately (about 250m radius)
Additionally, I am interested how this works (maybe requesting the available networks and doing some sort of arithmetic cut on these sets of points, triangulation? and/or getting their signal strengthes and thus altering the network towers' radiuses) and why only on SIM1 (?) What I see is the device connecting to some GRRS on SIM1 (G_1 symbol on the top bar). However, this does not seem to cause any charges - this is no guarantee but only what I examined on my telephone record.
Is there a way how to optimize this already very accurate service by maybe somehow taking in account what SIM2's network location would be.
Thank you very much.