2011-04-24 13 views
0
public void addOverLays(){ 
    String [] coordinates = {"30.084262490272522","31.33625864982605" ,"30.084123015403748", "51.5002" , "-0.1262","31.337149143218994"}; 
    double lat = 30.084262490272522, lat2 = 51.5002,lat3=30.084123015403748; 
    double log = 31.33625864982605, log2 = -0.1262,log3=31.337149143218994; 

    p = new GeoPoint((int) (lat * 1E6), (int) (log * 1E6)); 
    p2 = new GeoPoint((int) (lat2 * 1e6), (int) (log2 * 1e6)); 
    p3 = new GeoPoint((int) (lat3 * 1E6), (int) (log3 * 1E6)); 
    mapOverlays = mapView.getOverlays(); 
    drawable = this.getResources().getDrawable(R.drawable.icon); 
    drawable2 = this.getResources().getDrawable(R.drawable.pushpin); 
    drawable3 = this.getResources().getDrawable(R.drawable.ballon); 

    itemizedOverlay = new HelloItemizedOverlay(drawable,this); 
    itemizedOverlay2 = new HelloItemizedOverlay(drawable2,this);   
    itemizedOverlay3 = new HelloItemizedOverlay(drawable3,this);  
    OverlayItem overlayitem = new OverlayItem(p, "Cairo", " over1"); 
    OverlayItem over2 = new OverlayItem(p2, "ulm", "over2"); 
    OverlayItem over3 = new OverlayItem(p3, "offff", "over3"); 

    itemizedOverlay.addOverlay(overlayitem); 

    mapOverlays.add(itemizedOverlay); 

    itemizedOverlay2.addOverlay(over2); 
    mapOverlays.add(itemizedOverlay2); 

    itemizedOverlay2.addOverlay(over3); 
    mapOverlays.add(itemizedOverlay3); 

爲什麼我不能添加3個項目因的Android的GeoPoint錯誤

p = new GeoPoint((int) (lat * 1E6), (int) (log * 1E6)); 
p2 = new GeoPoint((int) (lat2 * 1e6), (int) (log2 * 1e6)); 
p3 = new GeoPoint((int) (lat3 * 1E6), (int) (log3 * 1E6)); 

不能讓1E6 & 1E6我必須做什麼其他的?!!

+0

您是否收到錯誤?如果是這樣,請發佈錯誤。如果沒有,我不知道你在問什麼,所以請編輯你的文章並澄清問題。 – Blair 2011-04-25 01:48:12

回答

1

可能有鑄造問題,很難說。嘗試使用這個工具的方法:

public static GeoPoint calculateGeoPoint(double latitude, double longitude) { 
Double latE6 = latitude * 1E6; 
Double lngE6 = longitude * 1E6; 
return new GeoPoint(latE6.intValue(), lngE6.intValue()); 

}

它工作可靠我在測試的產品代碼。