Как я могу кодировать круг на картах 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