Как я могу кодировать круг на картах Android?

Я знаю, что мы можем кодировать многоугольник в Android, как это:

  encoded_string = polyutil.encode(polygon.getPoints());

Но как мы можем получить закодированную строку для круга?

2 ответа

Вы можете использовать Java Topology Suite для этого. http://mvnrepository.com/artifact/com.vividsolutions/jts/1.11

    Coordinate center = new Coordinate(entity.getLongitude(), entity.getLatitude());
    GeometricShapeFactory gsf = new GeometricShapeFactory();

    gsf.setCentre(center);
    gsf.setNumPoints(20);
    gsf.setSize(10.2);

    Polygon poly = gsf.createCircle();

    Coordinate[] coordArray = poly.getCoordinates();

Не уверен, что это то, что вам нужно, но он даст вам массив координат по периметру круга, так что, возможно, стоит поиграть с ним.

Я не знаю что polyutil или что его encode метод делает, но эквивалент круга точек многоугольника - центр и радиус. Это не должно быть слишком сложно позвонить getCenter() а также getRadius() на круг и сделать строку с этими данными в нем.

https://developer.android.com/reference/com/google/android/gms/maps/model/Circle.html

Другие вопросы по тегам