GEOS
3.4.2
Main Page
Related Pages
Namespaces
Classes
Files
File List
include
geos
linearref
LengthLocationMap.h
1
/**********************************************************************
2
*
3
* GEOS - Geometry Engine Open Source
4
* http://geos.osgeo.org
5
*
6
* Copyright (C) 2011 Sandro Santilli <strk@keybit.net>
7
* Copyright (C) 2005-2006 Refractions Research Inc.
8
* Copyright (C) 2001-2002 Vivid Solutions Inc.
9
*
10
* This is free software; you can redistribute and/or modify it under
11
* the terms of the GNU Lesser General Public Licence as published
12
* by the Free Software Foundation.
13
* See the COPYING file for more information.
14
*
15
**********************************************************************
16
*
17
* Last port: linearref/LengthLocationMap.java r463
18
*
19
**********************************************************************/
20
21
#ifndef GEOS_LINEARREF_LENGTHLOCATIONMAP_H
22
#define GEOS_LINEARREF_LENGTHLOCATIONMAP_H
23
24
#include <geos/geom/Coordinate.h>
25
#include <geos/geom/Geometry.h>
26
#include <geos/linearref/LinearLocation.h>
27
28
namespace
geos {
29
namespace
linearref {
// geos::linearref
30
37
class
LengthLocationMap
38
{
39
40
41
private
:
42
const
geom::Geometry
*linearGeom;
43
44
LinearLocation
getLocationForward(
double
length)
const
;
45
46
LinearLocation
resolveHigher(
const
LinearLocation
& loc)
const
;
47
48
public
:
49
50
// TODO: cache computed cumulative length for each vertex
51
// TODO: support user-defined measures
52
// TODO: support measure index for fast mapping to a location
53
63
static
LinearLocation
getLocation
(
const
geom::Geometry
*linearGeom,
double
length)
64
{
65
LengthLocationMap
locater(linearGeom);
66
return
locater.
getLocation
(length);
67
}
68
80
static
LinearLocation
getLocation
(
const
geom::Geometry
*linearGeom,
double
length,
bool
resolveLower)
81
{
82
LengthLocationMap
locater(linearGeom);
83
return
locater.
getLocation
(length, resolveLower);
84
}
85
94
static
double
getLength
(
const
geom::Geometry
*linearGeom,
const
LinearLocation
& loc);
95
96
LengthLocationMap
(
const
geom::Geometry
*linearGeom);
97
110
LinearLocation
getLocation
(
double
length,
bool
resolveLower)
const
;
111
123
LinearLocation
getLocation
(
double
length)
const
;
124
125
double
getLength
(
const
LinearLocation
& loc)
const
;
126
127
};
128
129
}
// geos.linearref
130
}
// geos
131
132
#endif
Generated on Fri Aug 7 2015 17:16:01 for GEOS by
1.8.2