2010-06-02 58 views
1

我試圖向我的GWT地圖中添加多個標記。如果我使用地理編碼器進行操作,它就可以很好地工作......但是我也可以從數據庫中獲取值,所以我可以通過Lat Lng來放置它們。無法將標記放在帶有Lat和Lng的GWT Maps中 - 在map.addOverlay(標記)中出現空指針異常

這是代碼:

​​

例外總是在map.addOverlay拋出()。我通過syso檢查從DB 返回雙打和他們就好了......

我希望有人能幫助,

在此先感謝

編輯:這是地理編碼器的代碼方法,這我想要做什麼:

public static void koordSuchen(final double lat, final double lon, 
     final String ort, final String image, final String name, 
     final String kategorie, final String beschreibung, 
     final String web, final int zoomlevel) { 
    // Geokodierung von Adressen herausbekommen 
    Geocoder geocoder = new Geocoder(); 
    geocoder.getLatLng(ort, new LatLngCallback() { 

     @Override 
     public void onSuccess(LatLng point) { 
      final LatLng ortKoord = LatLng.newInstance(lat, lon); 
      // neuen Marker erstellen 
      Marker marker = new Marker(ortKoord); 
      // neues Marker- Overlay erstellen 
      map.addOverlay(marker); 
      // Marker Klickhandler erstellen (Bei klick auf Marker oeffnet 
      // sich ein Popup) 
      marker.addMarkerClickHandler(new MarkerClickHandler() { 

       @Override 
       public void onClick(MarkerClickEvent event) { 
        // popup- Fenster erstellen 
        map.getInfoWindow().open(
          ortKoord, 
          new InfoWindowContent(image + name + "<br>" 
            + ort + "<br>" + kategorie + "<br><br>" 
            + beschreibung + "<br>" + web)); 

       } 
      }); 
     } 

     @Override 
     public void onFailure() { 
     } 
    }); 
} 

回答

0

map.addOverlay()是變量map在你的示例代碼中的第一個實例。你確定map已初始化?

+0

是的,它已初始化。我同時發現,如果我在地址解析器的onSuccess中使用了上述代碼,它可以很好地運行在我的數據庫中的Lat Lng。即使地理編碼器將搜索我給它的字符串,並返回可以使用的LatLng對象(我不能),但我可以使用db中的座標繪製標記。 如果我刪除地理編碼器,標記不能放置了,我回來了我的NullPointerException:/ – Chris 2010-06-02 13:11:53