Split a JSON represented polyline with an array of JSON points..

Đã Đóng Đã đăng vào 5 năm trước Thanh toán khi bàn giao
Đã Đóng Thanh toán khi bàn giao

This solution should be in C#. It can utilize the newtonsoft nuget package if you wish ([login to view URL]).

It should be a function/class that takes in two JSON strings (search result for lines and search result for points) and returns the JSON of merging the points into the lines as breaks in the lines.

The lines and points have a geometrical representation with an x,y,z,measure (where measure is the length the vertex/point exists within the Route).

The points in the point array will split the lines at their specified x/y and inject their properties into the line segment. Essentially breaking the lines where the points exist.

To help demonstrate the idea here I made a simple example (see attached picture)

The blue line is "Route A" it goes from a 0 to 5 in length (measure). The red dot represents a point in which I want to break the line.

[login to view URL] is the file that represents the blue line from a search result. Notice it has 2 entries in "attributes", one for each segment between vertices and then a dummy attribute indicating the end of the line. The format of the [login to view URL] is [x,y,z,measure] where z is ignored for this purpose

[login to view URL] is the result of point search. Notice there are 3 points. two of them belong to Route A (the blue line). When a point is on the same route as a line, you are guaranteed that they have an intersection and that you can inject the point(s) onto the lines. The format of the geometry is {x,y,z,m} , where m is measure

Only points with the attribute "Type" = "Above grade" will be considered. If Type is null or anything but "Above grade" then dont consider those points.

The ending result is represented with [login to view URL] You will notice that the OBJECTID of the point was transferred to all the lines as OBJECTID_2 but only the segment before the point got the value type and object values. You'll notice segments before the point and after the point geometry and measures were adjusted appropriately and the order of measure was maintained.

If there was an OBJECTID_66 in the initial input then your new points would be OBJECTID_67. This is a simple example of which I can provide more complicated examples but do not assume the that a particular route's beginning and end vetices will always be a straight line, they can zigzag and even overlap in some cases, in which you shouldnt rely on the x,y of the point but rather the measure to determine where to inject the new attribute, and use x,y to change geometries.

The project will only be funded and released once the freelancer has sufficiently shown to meet the requirement needs (which can be expanded upon at my digression). The free lancer will be given 2 sample json files and expected to send back a result json with the result. This can go on numerous times until I am satisfied it meets all requirements and needs, alternatively the free lancer may provide the C# upfront and I will run it through a series of testing. If testing is successful the funds will be fund and then released and the c# project and its code provided to me.

.NET Lập trình C# JSON Programming Kiến trúc phần mềm

ID dự án: #18447131

Về dự án

5 đề xuất Dự án từ xa 5 năm trước đang mở

5 freelancer chào giá trung bình$160 cho công việc này

logos104

Hi. I have about 15 years of programming experience. Mostly I used C, C++ and C# for my projects development. I can implement the task.

$200 USD trong 3 ngày
(99 Nhận xét)
6.7
aswadakdas

Customer's satisfaction is my goal *** *** Also 100% Completion is happy of me and client. *** *** Rest is my creative idea and honest effort. *** Looking to be your Good Venture along with your project! Best Thêm

$222 USD trong 10 ngày
(1 Nhận xét)
2.4
warvstar

I've written my own parsers and languages before and I have 15+ years of experience in software development. I can do this for you. Thanks Robert Stewart

$111 USD trong 1 ngày
(0 Nhận xét)
0.0