blackberryblackberry-eclipse-plugin

How to Display Multiple location in Google Map in Blackberry 5.0?


i m using GPS in my application. i had try lots of for display multiple location on map but till i m not getting any solution. if anybody have solution to overcame my this problem. i had try using this code. please help me.

Thanx in advance.

        StringBuffer document = new StringBuffer();

        document.append("<location-document>");

        latVec.addElement("19.097971");
        longVec.addElement("72.864761");
        latVec.addElement("19.066985");
        longVec.addElement("72.848969");
        addressVec.addElement("abc");
        addressVec.addElement("wydj");

        for(int j=0;j<latVec.size();j++)
        {                   
            double latlong = Double.parseDouble(latVec.elementAt(j).toString());
            double lonlong = Double.parseDouble(longVec.elementAt(j).toString());

            int lat = (int)latlong*100000;
            int lon = (int)lonlong*100000;
            String addressString = addressVec.elementAt(j).toString();          


            document.append("<location lon='"+ lon +"' lat='"+ lat +"'label='"+ addressString +"' description='"+ addressString +"' />");

        }

        document.append("</location-document>");

        String st = new String(document);

        Invoke.invokeApplication(Invoke.APP_TYPE_MAPS, new MapsArguments(MapsArguments.ARG_LOCATION_DOCUMENT, st));

Solution

  • package map;
    import java.util.Vector;
    
    import net.rim.blackberry.api.browser.Browser;
    import net.rim.blackberry.api.browser.BrowserSession;
    import net.rim.device.api.browser.field2.*;
    import net.rim.device.api.ui.*;
    import net.rim.device.api.ui.component.ButtonField;
    import net.rim.device.api.ui.component.Dialog;
    import net.rim.device.api.ui.container.*;
    
    public class NewBrowserFieldDemo extends UiApplication
    {
        public static void main(String[] args)
        {
            BrowserFieldDemo app = new BrowserFieldDemo();
            app.enterEventDispatcher();
        }
        public NewBrowserFieldDemo()
        {
            pushScreen(new MultiplePoints());
        }
    }
    
    
    
    
             class MultiplePoints extends MainScreen{
                String initial = "<!DOCTYPE html>\r\n" +
                        "<html> \r\n" +
                        "<head> \r\n" +
                        "  <meta http-equiv=\"content-type\" content=\"text/html; charset=UTF-8\" /> \r\n" +
                        "  <title>Google Maps Multiple Markers</title> \r\n" +
                        "  <script src=\"http://maps.google.com/maps/api/js?sensor=false\" \r\n" +
                        "          type=\"text/javascript\"></script>\r\n" +
                        "</head> \r\n" +
                        "<body>\r\n" +
                        "  <div id=\"map\" style=\"width: 500px; height: 400px;\"></div>\r\n" +
                        "\r\n" +
                        "  <script type=\"text/javascript\">\r\n" +
                        "    var locations = [";
                String second= " ];\r\n" +
                        "\r\n" +
                        "    var map = new google.maps.Map(document.getElementById('map'), {\r\n" +
                        "      zoom: 8,";
                String centerPoint ="";
                String finalpart = " mapTypeId: google.maps.MapTypeId.ROADMAP\r\n" +
                        "    });\r\n" +
                        "\r\n" +
                        "    var infowindow = new google.maps.InfoWindow();\r\n" +
                        "\r\n" +
                        "    var marker, i;\r\n" +
                        "\r\n" +
                        "    for (i = 0; i < locations.length; i++) {  \r\n" +
                        "      marker = new google.maps.Marker({\r\n" +
                        "        position: new google.maps.LatLng(locations[i][1], locations[i][2]),\r\n" +
                        "        map: map\r\n" +
                        "      });\r\n" +
                        "\r\n" +
                        "      google.maps.event.addListener(marker, 'click', (function(marker, i) {\r\n" +
                        "        return function() {\r\n" +
                        "          infowindow.setContent(locations[i][0]);\r\n" +
                        "          infowindow.open(map, marker);\r\n" +
                        "        }\r\n" +
                        "      })(marker, i));\r\n" +
                        "    }\r\n" +
                        "  </script>\r\n" +
                        "</body>\r\n" +
                        "</html>";
                String[] lt={"12.966085","12.944337","12.925599"};
              String[] lon={"77.533264","77.549400","77.594719"};
              String[] name={"vijyanagar","Banashankari","jaynagar"};
                MultiplePoints(){//StringBuffer html,Vector waypoints,LocationObj center){
                    StringBuffer html=new StringBuffer();
                    html.append(initial);        
                    for(int i=0 ; i<lt.length; i++){
                        //LocationObj source = (LocationObj)waypoints.elementAt(i);
                        //String point = "['"+source.getLabel()+"',"+source.getLatitude()+","+ source.getLongitude()+","+i+"],";
                        String point = "['"+name[i]+"',"+lt[i]+","+ lon[i]+","+i+"],";
                        //System.out.println("Point is"+point);
                        html.append(point);
                    }
                    html.append(second);
                    centerPoint = "  center: new google.maps.LatLng("+lt[0]+","+lon[0]+"),";    
                    html.append(centerPoint);
                    html.append(finalpart);
                    //System.out.println("Plot is"+html.toString());
                    BrowserFieldConfig _bfConfig = new BrowserFieldConfig();        
                  _bfConfig.setProperty(BrowserFieldConfig.NAVIGATION_MODE,BrowserFieldConfig.NAVIGATION_MODE_POINTER);
                  _bfConfig.setProperty( BrowserFieldConfig.JAVASCRIPT_ENABLED, Boolean.TRUE );
                 _bfConfig.setProperty(BrowserFieldConfig.USER_AGENT, "MyApplication 1.0");
    
                  BrowserField myBrowserField = new BrowserField(_bfConfig);
    
                  myBrowserField.displayContent(html.toString(), "http://localhost");
                  HorizontalFieldManager horf=new HorizontalFieldManager(HORIZONTAL_SCROLL);
                  horf.add(myBrowserField);
                  add(horf);
                }
            }