jmgibbo
jmgibbo

Reputation: 97

Blackberry - Google Maps (Sorry we have no imagery here)

Please find below the markup I am using within my BlackBerry application (OS version 6 and 7) to display locations on a google map.

private String getHTMLText() {
    String HTMLText = null;
    HTMLText = "<script type=\"text/javascript\" src=\"http://maps.google.com/maps/api/js?sensor=false&libraries=drawing\"></script>" + 
               "<body onload=\"initialize();\" topmargin=\"0\" leftmargin=\"0\">" + 
               "<div id=\"map_canvas\" style=\"width:" + Display.getWidth() + "px; height:" + Display.getHeight() + "px;\">" + 
               "</body>" + 
               "<script type=\"text/javascript\">" + 
               "var Coordinates= [];" + 
               "var locations = [" + getLocatinText() + 
               "];" + 
               "var map = new google.maps.Map(document.getElementById('map_canvas'), {" + 
               "zoom: " + iZoom + "," +
               "center: new google.maps.LatLng" + getCenterLocationText() + "," + 
               "mapTypeId: google.maps.MapTypeId.ROADMAP" + 
               "});" + 
               "var marker, i;" + 
               "marker = new google.maps.Marker({position: new google.maps.LatLng" + getCenterLocationText() + 
               ", map: map,icon: 'http://chart.apis.google.com/chart?chst=d_map_pin_letter&chld=%E2%80%A2|ff0084|ffffff'});" + 
               "for (i = 0; i < 1; i++) {" + 
               "marker = new google.maps.Marker({" + 
               "position: new google.maps.LatLng(locations[i][0], locations[i][1])," + 
               "map: map" + 
               "});" + 
               "Coordinates.push( new google.maps.LatLng(locations[i][0], locations[i][1]) );" + 
               "}" + 
               /*"var flightPath = new google.maps.Polyline({" + 
               "path: Coordinates," + 
               "strokeColor: \"#FF0000\"," + 
               "strokeOpacity: 0.7," + 
               "strokeWeight: 1" + 
               "});" +*/

               "</script>";

    return HTMLText;

}

On every image, although the map loads correctly, it shows text over the top saying "sorry we have no imagery here".

However the same code used in any browser appears correctly.

enter image description here

I would be very appreciative of any feedback.

Upvotes: 0

Views: 539

Answers (1)

Rince Thomas
Rince Thomas

Reputation: 4158

Try this -

StringBuffer html;
                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=true\" \r\n" +
                "          type=\"text/javascript\"></script>\r\n" +
                "</head> \r\n" +
                "<body>\r\n" +
                "  <div id=\"map\" style=\"width: 620px; height: 358px;\"></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" +
                "         \r\n" +
                "        }\r\n" +
                "      })(marker, i));\r\n" +
                "    }\r\n" +
                "  </script>\r\n" +
                "</body>\r\n" +
                "</html>";

            html=new StringBuffer();
            html.append(initial);
            String point = "['"+""+"',"+lattitude+","+longitude+","+""+"],";
            html.append(point);
            centerPoint = "  center: new google.maps.LatLng("+lattitude+","+longitude+"),";

               html.append(second);
               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(), "");
              add(myBrowserField);

Upvotes: 3

Related Questions