Search code examples
blackberryblackberry-maps

Draw route from source to destination on MapField


I know I can obtain the coordinates from Google Map services. But how can I get the coordinates for the source and destination to send it to Google Map services, and then draw the route, once I get all the coordinates?

Edited:

i have something like this :

                bmp = new Bitmap(getWidth(), getHeight());
                bmp.createAlpha(Bitmap.ALPHA_BITDEPTH_8BPP);
                Graphics g = Graphics.create(bmp);
                int x1 = -1, y1 = -1, x2 = -1, y2 = -1;
               XYPoint point0 = new XYPoint();
                convertWorldToField(mPoints[0], point0);
                x1=point0.x;
                y1=point0.y;
                g.setColor(Color.BLUE);
                g.fillEllipse(x1, y1, x1, y1 + 1, x1 + 1, y1, 0, 360);

                for (int i = 0; i < mPoints.length; i++) {
                        XYPoint point = new XYPoint();
                        convertWorldToField(mPoints[i], point);
                        x2 = point.x;
                        y2 = point.y;
                        g.setColor(Color.GREEN);
                        g.drawLine(x1, y1, x2, y2);
                        g.fillEllipse(x1, y1, x1, y1 + 1, x1 + 1, y1, 0, 360);
                if(i == mPoints.length-1)
                        {
                            g.setColor(Color.YELLOWGREEN);
                            g.fillEllipse(x1, y1, x1, y1 + 1, x1 + 1, y1, 0, 360);
                        }
                        x1 = x2;
                        y1 = y2;
                }

Solution

  • You can use a geocoder to get the latitude and longitude of a location. Google has one, documentation at http://code.google.com/apis/maps/documentation/geocoding/.

    So after you get directions between the two locations, you'll end up with an XML file that includes directions along with coordinates. Override the MapField's paint() method and use convertWorldToField() to get the locations to draw on the map. From there it's just simply drawing lines from one location to the next.