For this application, I would use an Azimuthal Equidistant projection centered in the middle of your source points. This projection has the nice feature of all radial distances around the center of the projection being accurate.
That particular projection is not part of QGIS standard projections. You can define your own using Settings/Custom CRS with the command string +proj=aeqd +lat_0=24.5 +lon_0=121.5
, but unfortunately, custom projections can't be used by the fTools Reprojection tool. Instead, you can transform your dataset on the command line using the command
ogr2ogr points_reprojected.shp points.shp -t_srs "+proj=aeqd +lat_0=24.5 +lon_0=121.5"
Then you can do the buffering in QGIS using the points_reprojected.shp
shapefile.
A 2000km buffer around a point in north Taiwan looks like a circle in an orthographic projection centered on the point:
... and squashed in WGS84:
If the solution to this problem is relevant, and I understood it correctly, its solution is as follows: (The original data is abstract, as I understood it is adjacent intersecting on the buffer with a given number of meters, in my case 2 tables: exper_list3 and exper_list4 see figure 1):
1) In pgAdmin, run the query:
create table exper_list5 as
SELECT
st_intersection (exper_list4.geom, exper_list3.geom) AS geom
FROM exper_list4, exper_list3
WHERE
st_intersects (exper_list4.geom, exper_list3.geom) = true;
result: table exper_list5 see figure 2;
2) In pgAdmin, run the query:
create table exper_list6 as
SELECT (ST_Dumppoints (geom)). Geom FROM exper_list5;
The result is a table with dots, additionally go to the table properties, create a gid field and set restrictions on it;
3) In QGIS, run the Voronoi Polygon tool on the table (vector layer) exper_list6
The result is shown in Figure 3.
4) In pgAdmin, run the query:
create table exper_list8 as
SELECT (ST_Dumppoints (geom)).geom FROM exper_list7;
The result is shown in Figure 4.
5) Select from exper_list8 those points that enter the polygon exper_list5
In pgAdmin, run the query:
create table exper_list9 as
SELECT
st_intersection (exper_list8.geom, exper_list5.geom) AS geom
FROM exper_list8, exper_list5
WHERE
st_intersects (exper_list8.geom, exper_list5.geom) = true;
and copy these points to the exper_list6 table
result figure 5;
6) In QGIS On the table exper_list6 run the tool "Delaunay triangulation"
and get the result exper_list10 see figure 6
7) In QGIS in the editing mode "Pencil" in the table exper_list10 choose those triangles that hit the area of interest, use the tool "Vector" - "Geoprocessing" - "Unification by feature" (check "only selected objects" "Classification" - by all signs) result exper_list11 figure 7;
8) From exper_list6 cut exper_list11 result figure 8 exper_list12;
9) From exper_list4 cut exper_list11 the result figure 9 exper_list13;
10) Similar actions must be performed with the left polygon (in my case, the exper_list4 table)
11) The overall result is the two tables exper_list13 and exper_list14 see figure 10.
good luck, yours faithfully
Best Answer
Unfortunately I do not know how to do it with QGIS but here is how to do the job with another open source GIS OpenJUMP.
Source data
Take the Polygon overlay tool
Dialogue asks to give Layer A and Layer B as inputs. Use the same layer for both. OpenJUMP will show an error message but don't care about that because it is still creating the intersections. Parts which were common for two or more polygons will have NaN value in all the attributes which can be used for filtering.