Question: Using C++ Language please help with the below: (MAKE file not needed) Geographic Information Systems (GIS) are a useful application of technology to the field
Using C++ Language please help with the below:
(MAKE file not needed) 


Geographic Information Systems (GIS) are a useful application of technology to the field of Geography. GIS tools are used in systems such as GCCS, often used by the military for mission planning and high-level navigation. They are also used by municipalities for managing resources such as monitoring watersheds for testing purposes. County tax assessors likewise use such tools for assessing taxes on property owners. All of these applications involve efficient and accurate querying of points (for example a mouse click) to determine whether a query is inside a particular polygon. The purpose of such queries is often to report the name of the polygon that contains the query point. The polygons used in GIS systems are often referred as parcels. Checking whether a point is inside a polygon depends on how the polygon is stored. For this project, we'll work with convex polygons only, this enables us to simplify the inclusion check a bit. In our case, polygons will be stored as a list of vertices given in the clockwise order. Thus, checking if a point is inside a polygon involves checking whether the point lies on or to the right of all edges if we treat every edge as a directed line following the clockwise direction. Given three points, to determine the location of a point p3 related to the line from point p1 to point p2, we can use the following formula (p2xp1.x)(p3.yp1.y)(p2.yp1.y)(p3.xp1.x) to calculate the cross product of two vectors p2>p1 and p3>p1. If this value is negative, p3 is on the right to the line from p1 to p2. If this value is zero, it is on the edge. Both should be consider inside the polygon. You may make a private function to perform this check. Your application must function as described below: 1. Your program shall adhere to the test suites provided here. Read the tests and create the required files, classes, and methods. This means that all tests must pass in their current configuration. 2. A Makefile is provided. Read it to have some understanding of the project. Never modify it!. 3. Additionally, you must create a user application that allows a user to specify an input file which conforms to the Sample data format given below. - Data will be given as alternating and values. - Each line of the input file will contain a single polygon. - All coordinate values are integer values. - The first parcel in the sample data below is a 22 square with the bottom left vertex at (0,0) and a rectangle that is two units high and six units wide with a bottom left vertex at (0,2). - Not all inputs will be axis-aligned rectangles, they are just good exemplars due to their simplicity. 4. The program must then allow queries to be submitted in the form of x and y coordinates and should report the title of the polygon which contains the query point. - The user should be prompted for the x coordinate, then prompted for the y coordinate as seen in Sample run below. Sample polygonal data This sample data is found in simple-polygons.txt. A more complicated input file is in polygons.txt, for when you are ready to test your program against something more complicated. squareParcel 00222220 wideRectangleParcel 0200464462 Please enter the file with the polygon data: bad-file-name.zz Invalid file name! Please enter the file with the polygon data: simple-polygons.txt Coordinates of query point (non-integer quits) x:1 y: 1 Query point is inside: squareParcel Coordinates of query point (non-integer quits) x:3 y:3 Query point is inside: wideRectangleParcel Coordinates of query point (non-integer quits) x:7 y:7 Query point is inside: Not Found Coordinates of query point (non-integer quits) x : quit Have a great day
Step by Step Solution
There are 3 Steps involved in it
Get step-by-step solutions from verified subject matter experts
