2017-04-18 8 views
0

私はこのコードを私のものに統合したいが、それを動作させる方法を知らない。マーカで私の近くのランダムな位置を生成する

私はreturn文に問題があり、次にランダムに生成された位置でマークを作成する方法はありますか?
getRandomLocation()の方法でマーカーを作成する方法を教えてください。

public Location getRandomLocation() { 
     Location location = new Location(""); 
     LatLng latLng = new LatLng(location.getLatitude(), location.getLongitude()); 
    int radius = 10; 


        double x0 = latLng.latitude; 
      double y0 = latLng.longitude; 

      Random random = new Random(); 

      // Convert radius from meters to degrees 
      double radiusInDegrees = radius/111000f; 

      double u = random.nextDouble(); 
      double v = random.nextDouble(); 
      double w = radiusInDegrees * Math.sqrt(u); 
      double t = 2 * Math.PI * v; 
      double x = w * Math.cos(t); 
      double y = w * Math.sin(t); 

      // Adjust the x-coordinate for the shrinking of the east-west distances 
      double new_x = x/Math.cos(y0); 

      double foundLatitude = new_x + x0; 
      double foundLongitude = y + y0; 
      LatLng randomLatLng = new LatLng(foundLatitude, foundLongitude); 

      Location loc = new Location(""); 
      loc.setLatitude(randomLatLng.latitude); 
      loc.setLongitude(randomLatLng.longitude); 

//dont know what to return 
     return ; 
    } 

    public final void addMarker(GoogleMap mMap) { 
//dont know how to get working the getRandomLocation()) 
     mMap.addMarker(new MarkerOptions() 
       // .position(new LatLng(48.349723, 18.052405)) 
       .position(getRandomLocation()) 
       .title("krokodíl") 
       .icon(BitmapDescriptorFactory.fromBitmap(resizeMapIcons("krokodil", 100, 100)))); 

     mMap.addMarker(new MarkerOptions() 
       // .position(new LatLng(48.310025, 18.038878)) 
       .position(getRandomLocation()) 
       .icon(BitmapDescriptorFactory.fromBitmap(resizeMapIcons("fretka", 100, 100))) 
       .title("fretk")); 
     mMap.addMarker (new MarkerOptions() 
       .title("hroch") 
       .icon(BitmapDescriptorFactory.fromBitmap(resizeMapIcons("hroch", 100, 100))) 
       // .title() 
       //.snippet(mObj.getNumber(Configs.MONSTERS_MONSTER_POINTS) + " points") 
       // .position(new LatLng(48.318569, 18.055767))); 
       .position(getRandomLocation())); 
    } 

答えて

1

コードのロジックによれば、randomLatLngを返す必要があります。

変更行:

public LatLng getRandomLocation() { 

などreturn文の何かを作る:

public Location getRandomLocation() { 

return randomLatLng; 

タイプLatLngのオブジェクトが必要MarkerOptions.position()方法を、そのあなたのIDEがあなたをエラーとして表示しているものです。

+0

はい、私は理解していますが、markeroptionsを作成すると、何を追加するのかわかりません.posposition(getRandomLocation); –

+0

.position(getRandomLocation())が正しいです。 –

+0

ありがとう問題は返されませんでしたstatemantまたはmarkeroptions私は悪い宣言されたメソッドをLatLngにする必要があります –

関連する問題