- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我正在尝试在谷歌地图上自由绘制手形,直到现在我可以成功绘制折线和多边形,感谢@Chintan Khetiya 在 draw free hand polygon in Google map V2 in Android 的回复和 Draw a path on maps但是当我尝试像下图那样绘制多边形时,“polygonOptions.fillColor(color)”不起作用,我尝试将点转换为两个多边形,但它也不起作用,任何人都可以建议或喜欢分享任何提示或更好的解决方案,以使用谷歌地图多边形绘制带有填充颜色的自由手形状。
这是我如何绘制多边形
fram_map.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
float x = event.getX();
float y = event.getY();
int x_co = Math.round(x);
int y_co = Math.round(y);
projection = mMap.getProjection();
Point x_y_points = new Point(x_co, y_co);
LatLng latLng = mMap.getProjection().fromScreenLocation(x_y_points);
latitude = latLng.latitude;
longitude = latLng.longitude;
int eventaction = event.getAction();
switch (eventaction) {
case MotionEvent.ACTION_DOWN:
// finger touches the screen
val.add(new LatLng(latitude, longitude));
case MotionEvent.ACTION_MOVE:
// finger moves on the screen
val.add(new LatLng(latitude, longitude));
case MotionEvent.ACTION_UP:
// finger leaves the screen
Draw_Map();
break;
}
if (Is_MAP_Moveable == true) {
return true;
} else {
return false;
}
}
});
public void Draw_Map() {
rectOptions = new PolygonOptions();
rectOptions.addAll(val);
rectOptions.strokeColor(Color.BLUE);
rectOptions.strokeWidth(7);
rectOptions.fillColor(Color.CYAN);
polygon = mMap.addPolygon(rectOptions);
}
“zillow real estate android app”中使用了类似的功能
最佳答案
正如所提供示例中的多边形文档 (https://developers.google.com/android/reference/com/google/android/gms/maps/model/Polygon) 所示,您应该将形状设置关闭为第一个 LatLng 的副本。
因此,您应该编辑您的监听器,添加对执行 ACTION_DOWN 时获得的 LatLng 的引用,而当您执行 ACTION_UP 时,您必须插入一个与先前引用点具有相同坐标的新 LatLng。
编码愉快!
关于java - Android谷歌地图如何用fillColor绘制复杂的多边形,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41721475/
leaflet:一个开源并且对移动端友好的交互式地图 JavaScript 库 中文文档: https://leafletjs.cn/reference.html 官网(英文): ht
我是一名优秀的程序员,十分优秀!