用标记生成我附近的随机位置

时间:2017-04-18 10:09:34

标签: android random marker

我想将此代码集成到我的代码中,但不知道如何让它运行。

我遇到了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 个答案:

答案 0 :(得分:1)

根据代码的逻辑,您需要返回randomLatLng

更改行:

public Location getRandomLocation() {

为:

public LatLng getRandomLocation() {

并使return语句类似于:

return randomLatLng;

方法MarkerOptions.position()需要一个LatLng类型的对象,这是您的IDE显示为错误的对象。