Boost logo

Geometry :

From: Ahmet Temiz (ahmettemiz88_at_[hidden])
Date: 2019-09-20 10:40:20


Thank you,

I will work on it.

kind regards

On Fri, Sep 20, 2019 at 12:59 PM Matthieu Beghin via Geometry <
geometry_at_[hidden]> wrote:

> Hi,
> You should create your own algorithm. For instance, in non-optimal and not
> well written pseudo c++:
>
> void mergeLineStrings(std::vector<line_string>& in,
> std::vector<line_string>& out, double threshlod) {
> // Process first item of "in"
> auto toProcess = in.front(); // This copy should be avoided
> in.erase(in.begin()); // So remove it from container
> for (auto outIt=out.begin(); outIt!=out.end(); outIt++) {
> // see if first point of toProcess and first point of outIt are close
> enough to merge
> if (distance(toProcess.begin(), outIt->begin()) < threshold) {
> // insert points from toProcess at the beginning of outIt
> ...
> return;
> }
> // see if first point of toProcess and last point of outIt are close
> enough to merge
> ...
> // see if last point of toProcess and first point of outIt are close
> enough to merge
> ...
> // see if last point of toProcess and last point of outIt are close
> enough to merge
> ...
> }
> // Found no out line_string to merge with, add toProcess in out
> line_strings
> out.push_back(toProcess);
> }
>
> // Processing would be
> std::vector<line_string> in = {{....}};
> std::vector<line_string> out;
> while (!in.empty()) {
> mergeLineStrings(in,out, threshold);
> }
>
> Hope that helps.
> Cheers
> Matthieu Beghin
>
> On Fri, Sep 20, 2019 at 8:59 AM Ahmet Temiz via Geometry <
> geometry_at_[hidden]> wrote:
>
>> Hi,
>>
>> Thank you all.
>> I need to merge lines that are in certain distances. Lines represent the
>> roads. The result looks like some dashed lines. if they are not merged.
>>
>> Previously I tried geos lib's linemerger function. The result was not
>> satisfactory.
>>
>> I looked at boost's append. It is for appending point to a line.
>>
>> What am I looking for appending a line to another line if it is in
>> certain distance ( may be a threshold value).
>>
>> I am going to look at bg::distance().
>>
>> Do you have any other recommendations ?
>>
>> regards
>>
>>
>>
>> On Thu, Sep 19, 2019 at 7:12 PM Adam Wulkiewicz via Geometry <
>> geometry_at_[hidden]> wrote:
>>
>>> W dniu 19.09.2019 o 15:09, Mateusz Loskot via Geometry pisze:
>>> > On Thu, 19 Sep 2019 at 13:01, Ahmet Temiz via Geometry
>>> > <geometry_at_[hidden]> wrote:
>>> >> I want to merge some partial lines (roads) to a continuous single
>>> line based on certain proximity.
>>> >>
>>> >> Can you guide me to use relevant function?
>>> > Have you browsed through the API reference for potential candidates?
>>> >
>>> > For example, this one
>>> >
>>> https://www.boost.org/libs/geometry/doc/html/geometry/reference/algorithms/append.html
>>> > and this may be helpful
>>> >
>>> https://github.com/boostorg/geometry/blob/develop/example/02_linestring_example.cpp
>>>
>>> Well, I don't know if that's what is needed here. AFAIU there is some
>>> reference line (linestring or segment?) and the problem is that some
>>> other lines that are closer than some distance threshold should be
>>> filtered out from a set of these other lines. Is that correct? If it is
>>> then you probably only need bg::distance() or bg::comparable_distance().
>>> But these functions will return the minimum distance between two
>>> linestrings so if you define proximity differently then you'll need
>>> something else.
>>>
>>> So if the above does not apply please expand the explanation of the
>>> problem defining what does "partial lines", "merge", "continuous single
>>> line" and "proximity" mean exactly.
>>>
>>> Adam
>>>
>>> _______________________________________________
>>> Geometry mailing list
>>> Geometry_at_[hidden]
>>> https://lists.boost.org/mailman/listinfo.cgi/geometry
>>>
>>
>>
>> --
>> Ahmet Temiz
>> Jeoloji Müh.
>> Afet ve Acil Durum Yönetimi Başkanlığı
>> Bilgi İşlem Dairesi Başkanlığı-CBS Grubu
>>
>>
>> ________________________
>>
>> Ahmet Temiz
>> Geological Eng.
>> Information Systems - GIS Group
>> Disaster and Emergency Management
>> of Presidency
>> _______________________________________________
>> Geometry mailing list
>> Geometry_at_[hidden]
>> https://lists.boost.org/mailman/listinfo.cgi/geometry
>>
> _______________________________________________
> Geometry mailing list
> Geometry_at_[hidden]
> https://lists.boost.org/mailman/listinfo.cgi/geometry
>

-- 
Ahmet Temiz
Jeoloji Müh.
Afet ve Acil Durum Yönetimi Başkanlığı
Bilgi İşlem  Dairesi Başkanlığı-CBS Grubu
________________________
Ahmet Temiz
Geological Eng.
Information Systems - GIS Group
Disaster and Emergency Management
of Presidency


Geometry list run by mateusz at loskot.net