purchase phentermine online phentermine 37 5mg cheap c o d phentermine u p s phentermine dietpills phentermine overseas phentermine online cheap diet pills side effects of phentermine long term effects of phentermine phentermine online ordering phentermine discount is phentermine safe thin phetamine compare phentermine price online cheap phentermine phentermine cheap free shipping phentermine c o d free shipping on phentermine diet pills phentermine overnight fedex delivery free shipping phentermine phentermine that uses paypal cheap florida phentermine phentermine fast wholesale phentermine buy phentermine in canada best online deal for phentermine phentermine 8 mg buy phentermine cheap phentermine weight loss phentermine for weight loss phentermine success stories

Interview for Telematicsupdate about OpenCellID

June 27th, 2008

Following conference Telematicsupdate conference about LBS, I’ve been interviewed by Thomas about OpenCellid and impact on the industry. Result is here: Towards free location on all devices.

Adding location to a non GPS phone : using OpenCellID

June 26th, 2008

1) Introduction

In this two parts article, we will introduce mobile positioning with CellID, and the open source database of CellIDs: OpenCellID. We will see how to use it through a simple sample. The second part will demonstrate how to use OpenCellID with OpenStreeMap and the 8Motion library to create a full interactive mobile mapping experience in JavaME, each of these examples being less than 100 lines of code.

2) What is CellID

We all know that GPS will be deployed in the vast majority of phones in the future. But now, only a few high end handsets are GPS enabled.
An alternative, available since a long time, but gaining momentum recently is CellID based location. What is CellID? A CellID is the number given to a specific cell (the radio tower to which your handset is connected) . In most of the case, it’s the closest tower to your location. So by knowing this tower, you know where the user is. But a tower can cover a huge area: from a few hundred meters, in high density area, to several kilometers in lower density area. That’s why CellID accuracy is lower than GPS accuracy, but this present a very good alternative.

CellID has become recently more popular, mainly thanks to his nice integration into GoogleMap mobile.

3) OpenCellID

So this sounds great, let’s just get the phone cellID, so we will have his location. The issue is that the location of cells is not a public information. Operators keep this private, for many reasons:

  • They don’t want to give tower location to their competitors
  • They use this as an extra revenue income, as they provide paying services to retrieve cell location.

That’s why we have set up a service called “OpenCellID”. OpenCellID.org is an open source database of CellID, serving two purposes:

  • Everybody can create an application gathering information about cell locations, and send these information to the OpenCellID server, improving the coverage
  • The database can be used by other applications to get the location of a cell, according to his cell id.

How to use OpenCellID (http://www.opencellid.org/api )

The API is a simple REST api. There are only two relevant calls: measure/add and get/cell

measure/add to add a measure of cell. This is used to by application which wants to add information to the database. These application produce content for the OpenCellID database. To use it, you need to require a key to OpenCellID.org. The key is used to track applications providers, and ensure that no fake data are inserted into the system.

Examples:

http://www.opencellid.org/measure/add?key=myapikey&mnc=1&mcc=2&lac=200&cellid=234&lat=3.42&lon=3.12

Replace myKey with the key that you received while registering at OpenCellID. This will tell the serveur that a client found a cell of id 234, for mcc=1, mcc=2 and the position 3.42,3.12 …Be careful: all informations are in decimal, while some handsets (sonyericsson for instance) provides lac and cellid in hexa, so you will need to convert them before calling the API.

Cell/get is used to get the position associated with a cell. You just need to give mcc,mnc,cellid and optionnaly lac.

http://www.opencellid.org/cell/get?mcc=250&mnc=99&cellid=29513&lac=0

You need to provide at least mcc, mnc (mobile country code, and mobile network code of the operator), and cell id. Lac (location area code) is an optional parameter, and will help to find an alternate position if cell is not found.
In return, the API will return a simple XML, like this one:



<rsp stat=“ok”>
<cell lat=“57.8240013122559″ lac=“0″ lon=“28.00119972229″ mcc=“250″ nbsamples=“38″ range=“0″ cellid=“29513″ mnc=“99″>
</cell></rsp>

Lat and lon are the coordinate of the cell, based on 38 samples…

If needed, you can use the optional parameter “fmt” to specify an output format,:

http://www.opencellid.org/cell/get?mcc=250&mnc=99&cellid=29513&lac=0&fmt=txt

will return something like this:

57.8240013122559,28.00119972229,250,99,0,29513,100,38

Same informations than before, but in a much compact form (see the API description for a complete description).

Others API are under development, to retrieve operators from mcc/mnc for instance.

4) Sample program:

So let’s use OpenCellID to create a small program, written in JavaME, which will just get the CellID of the phone , do a request to the OpenCellID server and display the results.

First, let’s get the CellID:

We use SonyEricsson specific properties. There properties are non standard, and only available on some devices.

// These properties are implemented on latest SonyEricsson phone // This does not work on others (Nokia, etc…) String cellid=System.getProperty(“com.sonyericsson.net.cellid”); String mcc = System.getProperty(“com.sonyericsson.net.cmcc”); String mnc = System.getProperty(“com.sonyericsson.net.cmnc”); String lac = System.getProperty(“com.sonyericsson.net.lac”);

Cellid is of course the cell id, mcc is mobile country code, mnc is mobile network code and identify the operator and the country (cmcc stands for current mcc). That’s all we need to find our location.

Then, verify if theses properties are supported:

String info=“This phone does not support CellID”; if(cellid!=null){ info=“Cell:”+cellid+ mcc:”+mcc+ mnc:”+mnc+ lac:”+lac; url=“http://www.opencellid.org/cell/get?cellid=”+Integer.parseInt(cellid,16)+ “&mcc=”+mcc+“&mnc=”+mnc+“&lac=”+Integer.parseInt(lac,16)+“&fmt=txt”; cellInfo.setString(info); Thread t=new Thread(this); t.start(); posInfo.setString(“Requesting position…”); }

In this part, we have created the URL to request information on the server, and start the fetch of the information in a separate thread:

public void run(){ try { HttpConnection cnx = (HttpConnection)Connector.open(url); InputStream is=cnx.openInputStream(); StringBuffer b=new StringBuffer(); int car; while( (car=is.read())!= -1){ b.append((char)car); } is.close(); cnx.close(); String res=b.toString(); if(res.startsWith(“err”)){ posInfo.setString(“Cell not found!”); }else{ int pos=res.indexOf(‘,’); String lat=res.substring(0,pos); int pos2=res.indexOf(‘,’,pos+1); String lon=res.substring(pos+1,pos2); posInfo.setString(lat+ +lon); } } catch (IOException ex) { ex.printStackTrace(); posInfo.setString(ex.toString()); } }

If the API call return something starting with err, we are probably in error. Otherwise, we will have our current cell id positioning.

And that’s done. The complete source code is available here.The compiled program is available here, with jad and jar.

So, what happens if the CellID is not in the database? Then the program will display an error. You can improve the accuracy of OpenCellID by discovering more cells. Check OpenCellID to know how to do it.

Next part will improve this first version, by creating an interactive program displaying the location on a map, using J2memap free component…

Lonely Planet API

June 25th, 2008

Big news in my view in the tourist area: Lonely Planet, one of the biggest brand in traditionnal tourist guide, just launched an API to access to his content.

The API is REST/XML based, quite easy to understand. So congrat to Chris (yes, one of the numerous former ex-In-Fusio guys in this area!)

A nice mobile web site, m.lonelyplanet.com is available, but it’s a wap only site. Here are a few snapshot of this app:

(from lonelyplanet developer blog).

And expect soon an integration with 8Motions!

Via RenaLId.com (in french)

8Motions in the Navigation and Location Europe 2008 Conference

May 28th, 2008

We will take part of the panel “How to build a community and monetize your local social network” next week in the Navigation and Location Europe 2008 Conference, in Amsterdam. Seems to be a lot of ince speakers, for various companies. If you are here, and want to chat, just send me an email.

Watchee: another OpenCellID client

May 14th, 2008

watchee.net - stay connectedTake a look at “Watchee.net“,another client gathering the OpenCellID database! And thanks to Marcel for all his relevant feedback to OpenCellID API! Good luck…..

New cells contributions

April 21st, 2008

Good news, OpenCellID is taking off in a great way. Nick Gering from Device54 contributed by providing some informations about some cells located in London and Barcelona! So thanks Nick for the contribution

Tutorial: loading a KML file using the J2memap library

April 16th, 2008

Ok, following some requests, here is another tutorial on how to use the J2memap library. First, note that if you just want to display a KML file on mobile, you can use 8Motions directly, no need to create your own application.

Anyway, here we are going to show you how to create a very simple app that display a KML file on a cell phone. First, download the J2memap library (you need to be registered to download it), and put thelibraryCLDC11.jar (or 10.jar) as a library of your project. In netbeans, you do Properties,add jar/zip,select the jar file.

Here I take a KML file, but it could be also a GPX file, LOC or GEORSS file….

Then, here is the code:

package com.eightmotions.LoadTrack;
import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;
import com.eightmotions.util.*;
import com.eightmotions.map.*;
/**
 *
 * @author tlandspurg
 * @version
 */
public class LoadTrack extends MIDlet implements TrackNotifier {

    MapCanvas m_map;
    Display m_display;
    public void startApp() {
        UtilMidp.checkMIDP(this); //Initialise the utility library…

        // Initialize the map, get the display, and put the map on it
        m_map=new MapCanvas();
        m_display=Display.getDisplay(this);
        m_display.setCurrent(m_map);     

        // Load a track, and display this track to a map
        Track track=Track.getTrack(m_display,“http://www.8motions.com/map/showKml/107″,“Loading Track”,m_map);
        // Listen for track loaded event…
        track.setNotifier(this);
    }

    public void pauseApp() { }

    public void destroyApp(boolean unconditional) {   }

    /* When the track has been loaded, display it… */
    public void onTrackLoaded(Track tr) {
        m_map.displayTrack(tr,true);
    }

    public void onTrackCreated(Track t) { };

    public void onTrackSaved(Track t) {};
}

Here is the result:

OpenCellID re-integrate GsmLoc data

April 4th, 2008

Jon Spinney from Maperture blog pointed on my previous post the effort of Christopher Schmidt from GSMLoc to create the same kind of database. So thanks to both of them, I’ve integrated the previous database of GPS cell, and we are now at 15301 cells covered with 541728 mesurements…

Introducing OpenCellId

April 3rd, 2008

Here is a project that I wanted to introduce to you: OpenCellID.The purpose of this project is to create an OpenSource database of GSM cells.

Why? Because this can be used as a “cheap” way to get your location. There is not a lot of phones that provides this access to JavaMe application (mostly SonyEricsson), but this may change in the near future.
The idea is do it in a transparent way for end user, thanks to 8Motions or other applications. This is not a new idea, as Google probably made the same for his GoogleMap mobile application. The only issue, is that the application needs to access to two informations:

  • the cellID
  • the GPS position

and for now, no handset provides this. N95 for instance, haves a GPS but does not provide CellID information in JavaME. Latest SonyEricsson phone, provides CellID, but not GPS position. I think that new GPS enabled handsets will provide both, but for new you need to use a SonyEricsson phone and an external bluetooth receiver….

You can check the result of collected data on the OpenCellID.org web site….

There were other initiatives like this, but the idea is to provide the Datas as an OpenSource information. The code of the project is hosted on Google Code.

Identificateurs Technorati : , , , ,

New design for j2memap dev website

March 31st, 2008

Just put in place a better design for the j2memap developer web site. Let me know if you have any issue….