2

昨日から、OS 5.0 のブラックベリー マップで緯度経度にクリック可能なピンを描画する方法を検索しています。特定の緯度経度で画像を描画していますが、その画像をクリックして別の画面に移動したいです。

前もって感謝します。

4

2 に答える 2

0

私はGoogleマップを使用してこのようにしました。

    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: 360px; height: 390px;\"></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>";

html=new StringBuffer();
html.append(initial);


 point = "['"+name[i]+"',"+lat[i]+","+ lon[i]+","+i+"],";
 html.append(point);

 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(), "");
   HorizontalFieldManager horf=new HorizontalFieldManager(HORIZONTAL_SCROLL);
   horf.add(myBrowserField);
   add(horf);

ピンをクリックすると、ユーザーの名前が表示されます。

于 2012-06-07T14:03:55.253 に答える
0

これは、最近の別の質問と非常によく似ています。もう 1 つの質問では、ポスターはマップ ピン (マーカー) のカスタム イメージを描画する方法を尋ねていました。マップ ピンとしてカスタム イメージが必要かどうかは、私にはわかりません。しかし、あなたがし、喜んで MapField を使用するのであれば

このソリューションを参照してください

丸いユーザー プロフィール画像のために、ピンに2 番目のレイヤーを描画する部分については心配する必要はありません。

ただし、paint()メソッドをオーバーライドしてカスタム ピンを描画し、ユーザーが地図上でタッチ/クリックした場所を特定し、そのタッチ/クリックからピンまでの距離を計算して、クリックされたピンを特定します。タッチ/クリックの処理は、タッチスクリーン デバイスと非タッチスクリーン デバイスでは動作が異なりますが、両方で使用する必要がある API メソッドにリンクしています。

于 2012-06-08T22:23:16.377 に答える