Отображение фрагмента на карте Google в приложении J2ME

Я получил доступ к карте Google в J2ME, используя следующий URL-адрес:

Строка url = "http://maps.google.com/maps/api/staticmap?center="+lat+","+lon+"&zoom="+zoom+"&size=" + width + "x" + height+"&maptype=roadmap"+"&markers=color:red|label:A|" + lat + "," + lon+"&sensor=true";

Я хочу показать фрагмент, используя этот URL.

Пожалуйста, дайте мне знать, где разместить код фрагмента в URL-адресе и какой для него будет код URL-адреса?

С уважением,

Пармананд


person Parmanand    schedule 23.04.2013    source источник


Ответы (1)


Вы можете загрузить свое изображение, используя такой код:

 private Image getImage(String url) {
        ContentConnection c = null;
        DataInputStream dis = null;
        try {
            try {
                c = (ContentConnection) Connector.open(url);
                int len = (int) c.getLength();
                dis = c.openDataInputStream();
                if (len > 0) {
                    byte[] data = new byte[len];
                    dis.readFully(data);
                    im = Image.createImage(data, 0, data.length);
                }
            } catch (IOException ioe) {
                // Failed to read the url. Can't do anything about it, just don't
                // update the image.
            } finally {
                // Regardless of whether we are successful, we need to close
                // Connections behind us. Basic Housekeeping.
                if (dis != null) {
                    dis.close();
                }
                if (c != null) {
                    c.close();
                }
            }
        } catch (IOException ioe) {
            // closure of connections may fail, nothing we can do about it.
        }
    }

Image может отображаться в Form как ImageItem, например:

  ImageItem imgItem = 
         new ImageItem("Default: ",  getImage(url),     
                       Item.LAYOUT_CENTER, null,    
                       Item.BUTTON);

Между прочим, приведенный выше фрагмент кода следует использовать только для одного статического изображения карты — не поддавайтесь искушению переопределить Canvas.paint() и использовать его для динамического обновления карты — требуемый объем трафика данных сделать это крайне неэффективно, и альтернативные решения (как описано в этот вопрос здесь).

person Jason Fox    schedule 25.06.2013