<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:x="urn:schemas-microsoft-com:office:excel" xmlns:p="urn:schemas-microsoft-com:office:powerpoint" xmlns:a="urn:schemas-microsoft-com:office:access" xmlns:dt="uuid:C2F41010-65B3-11d1-A29F-00AA00C14882" xmlns:s="uuid:BDC6E3F0-6DA3-11d1-A2A3-00AA00C14882" xmlns:rs="urn:schemas-microsoft-com:rowset" xmlns:z="#RowsetSchema" xmlns:b="urn:schemas-microsoft-com:office:publisher" xmlns:ss="urn:schemas-microsoft-com:office:spreadsheet" xmlns:c="urn:schemas-microsoft-com:office:component:spreadsheet" xmlns:odc="urn:schemas-microsoft-com:office:odc" xmlns:oa="urn:schemas-microsoft-com:office:activation" xmlns:html="http://www.w3.org/TR/REC-html40" xmlns:q="http://schemas.xmlsoap.org/soap/envelope/" xmlns:D="DAV:" xmlns:x2="http://schemas.microsoft.com/office/excel/2003/xml" xmlns:ois="http://schemas.microsoft.com/sharepoint/soap/ois/" xmlns:dir="http://schemas.microsoft.com/sharepoint/soap/directory/" xmlns:ds="http://www.w3.org/2000/09/xmldsig#" xmlns:dsp="http://schemas.microsoft.com/sharepoint/dsp" xmlns:udc="http://schemas.microsoft.com/data/udc" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:sub="http://schemas.microsoft.com/sharepoint/soap/2002/1/alerts/" xmlns:ec="http://www.w3.org/2001/04/xmlenc#" xmlns:sp="http://schemas.microsoft.com/sharepoint/" xmlns:sps="http://schemas.microsoft.com/sharepoint/soap/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:udcxf="http://schemas.microsoft.com/data/udc/xmlfile" xmlns:wf="http://schemas.microsoft.com/sharepoint/soap/workflow/" xmlns:mver="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns:mrels="http://schemas.openxmlformats.org/package/2006/relationships" xmlns:ex12t="http://schemas.microsoft.com/exchange/services/2006/types" xmlns:ex12m="http://schemas.microsoft.com/exchange/services/2006/messages" xmlns:Z="urn:schemas-microsoft-com:" xmlns:st="" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv=Content-Type content="text/html; charset=us-ascii">
<meta name=Generator content="Microsoft Word 12 (filtered medium)">
<style>
<!--
/* Font Definitions */
@font-face
        {font-family:Wingdings;
        panose-1:5 0 0 0 0 0 0 0 0 0;}
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
        {font-family:Tahoma;
        panose-1:2 11 6 4 3 5 4 4 2 4;}
@font-face
        {font-family:Verdana;
        panose-1:2 11 6 4 3 5 4 4 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri","sans-serif";}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:purple;
        text-decoration:underline;}
p
        {mso-style-priority:99;
        mso-margin-top-alt:auto;
        margin-right:0in;
        mso-margin-bottom-alt:auto;
        margin-left:0in;
        font-size:12.0pt;
        font-family:"Times New Roman","serif";}
code
        {mso-style-priority:99;
        font-family:"Courier New";}
p.MsoListParagraph, li.MsoListParagraph, div.MsoListParagraph
        {mso-style-priority:34;
        margin-top:0in;
        margin-right:0in;
        margin-bottom:0in;
        margin-left:.5in;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri","sans-serif";}
span.EmailStyle20
        {mso-style-type:personal;
        font-family:"Calibri","sans-serif";
        color:windowtext;}
span.EmailStyle21
        {mso-style-type:personal;
        font-family:"Calibri","sans-serif";
        color:#1F497D;}
span.EmailStyle22
        {mso-style-type:personal;
        font-family:"Calibri","sans-serif";
        color:#993366;}
span.EmailStyle23
        {mso-style-type:personal;
        font-family:"Calibri","sans-serif";
        color:#1F497D;}
span.EmailStyle24
        {mso-style-type:personal;
        font-family:"Calibri","sans-serif";
        color:#1F497D;}
span.EmailStyle25
        {mso-style-type:personal;
        font-family:"Calibri","sans-serif";
        color:#1F497D;}
span.EmailStyle26
        {mso-style-type:personal;
        font-family:"Calibri","sans-serif";
        color:#1F497D;}
span.EmailStyle27
        {mso-style-type:personal;
        font-family:"Calibri","sans-serif";
        color:#1F497D;}
span.EmailStyle28
        {mso-style-type:personal;
        font-family:"Calibri","sans-serif";
        color:#1F497D;}
span.EmailStyle29
        {mso-style-type:personal;
        font-family:"Calibri","sans-serif";
        color:#1F497D;}
span.EmailStyle30
        {mso-style-type:personal;
        font-family:"Calibri","sans-serif";
        color:#1F497D;}
span.EmailStyle31
        {mso-style-type:personal;
        font-family:"Calibri","sans-serif";
        color:#1F497D;}
span.EmailStyle32
        {mso-style-type:personal;
        font-family:"Calibri","sans-serif";
        color:#003300;}
span.EmailStyle33
        {mso-style-type:personal;
        font-family:"Calibri","sans-serif";
        color:#1F497D;}
span.EmailStyle34
        {mso-style-type:personal;
        font-family:"Calibri","sans-serif";
        color:#1F497D;}
span.EmailStyle35
        {mso-style-type:personal;
        font-family:"Calibri","sans-serif";
        color:olive;}
span.EmailStyle36
        {mso-style-type:personal;
        font-family:"Calibri","sans-serif";
        color:#1F497D;}
span.EmailStyle37
        {mso-style-type:personal;
        font-family:"Calibri","sans-serif";
        color:teal;}
span.EmailStyle39
        {mso-style-type:personal-reply;
        font-family:"Calibri","sans-serif";
        color:#1F497D;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-size:10.0pt;}
@page Section1
        {size:8.5in 11.0in;
        margin:1.0in 1.0in 1.0in 1.0in;}
div.Section1
        {page:Section1;}
-->
</style>
<!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang=EN-CA link=blue vlink=purple>
<div class=Section1>
<p class=MsoNormal><span style='color:#1F497D'>It seems like it would be a good
idea to mimic these OGC spatial functions as much as possible.<o:p></o:p></span></p>
<p class=MsoNormal><span style='color:#1F497D'><o:p> </o:p></span></p>
<p class=MsoNormal><span style='color:#1F497D'>Instead of a “last”
argument, it may be better to create the helper functions (StartPoint,
EndPoint). The EndPoint function could be “equivalent” to
PointN(geom,(NumPoints(geom)) but have an optimized implementation.<o:p></o:p></span></p>
<p class=MsoNormal><span style='color:#1F497D'><o:p> </o:p></span></p>
<p class=MsoNormal><span style='color:#1F497D'>I wonder if FDO should consider
further mimicking the OGC functions by also implementing something like their
STX and STY to get the individual dimensions of explicit points, rather than shortcuts
that have to make assumptions about which point the ordinates are pulled from. For
instance XCOORD(PointN(geom,1)) or XCOORD(StartPoint(geom)) instead of PointX(geom)<o:p></o:p></span></p>
<p class=MsoNormal><span style='color:#1F497D'><o:p> </o:p></span></p>
<p class=MsoNormal><span style='color:#1F497D'><a
href="http://msdn.microsoft.com/en-us/library/bb933828.aspx">http://msdn.microsoft.com/en-us/library/bb933828.aspx</a><o:p></o:p></span></p>
<p class=MsoNormal><span style='color:#1F497D'><o:p> </o:p></span></p>
<p class=MsoNormal><span style='color:#1F497D'>I _<i>do</i>_ like that these
functions return NULL for non-point geometries rather than throwing exceptions.<o:p></o:p></span></p>
<p class=MsoNormal><span style='color:#1F497D'><o:p> </o:p></span></p>
<p class=MsoNormal><span style='color:#1F497D'>Jason<o:p></o:p></span></p>
<p class=MsoNormal><span style='color:#1F497D'><o:p> </o:p></span></p>
<div>
<div style='border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0in 0in 0in'>
<p class=MsoNormal><b><span lang=EN-US style='font-size:10.0pt;font-family:
"Tahoma","sans-serif"'>From:</span></b><span lang=EN-US style='font-size:10.0pt;
font-family:"Tahoma","sans-serif"'> fdo-internals-bounces@lists.osgeo.org
[mailto:fdo-internals-bounces@lists.osgeo.org] <b>On Behalf Of </b>Robert
Fortin<br>
<b>Sent:</b> Tuesday, November 04, 2008 15:51<br>
<b>To:</b> FDO Internals Mail List<br>
<b>Subject:</b> RE: [fdo-internals] Request review of RFC
28-AddStart/EndExpressionFunctions<o:p></o:p></span></p>
</div>
</div>
<p class=MsoNormal><o:p> </o:p></p>
<p class=MsoNormal><span lang=EN-US style='color:teal'>Dan,<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US style='color:teal'><o:p> </o:p></span></p>
<p class=MsoNormal><span lang=EN-US style='color:teal'>Interesting that you
found this info. I believe the STPointN definition is similar to what I
was proposing since it depends on the order of output. I was suggesting
the same thing just in different word just applying to FDO.<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US style='color:teal'>I think adding the
NumPoint function is also interesting and could be useful. I’m
worried about the performance of the nested function compare to a simple
“last” argument. So I still think it would useful to have the
“last” point as argument. “1” for the first point
is obvious.<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US style='color:teal'><o:p> </o:p></span></p>
<p class=MsoNormal><span lang=EN-US style='color:teal'>RF<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US style='color:teal'><o:p> </o:p></span></p>
<div>
<div style='border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0in 0in 0in'>
<p class=MsoNormal><b><span lang=EN-US style='font-size:10.0pt;font-family:
"Tahoma","sans-serif"'>From:</span></b><span lang=EN-US style='font-size:10.0pt;
font-family:"Tahoma","sans-serif"'> fdo-internals-bounces@lists.osgeo.org
[mailto:fdo-internals-bounces@lists.osgeo.org] <b>On Behalf Of </b>Dan Stoica<br>
<b>Sent:</b> Tuesday, November 04, 2008 6:14 PM<br>
<b>To:</b> FDO Internals Mail List<br>
<b>Subject:</b> RE: [fdo-internals] Request review of RFC 28
-AddStart/EndExpressionFunctions<o:p></o:p></span></p>
</div>
</div>
<p class=MsoNormal><span lang=EN-US><o:p> </o:p></span></p>
<p class=MsoNormal><span lang=EN-US style='color:#1F497D'>I had a look into
SqlServer2008 documentation for inspiration. It has a number of interesting
functions:<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US style='color:#1F497D'><o:p> </o:p></span></p>
<p class=MsoNormal><strong><span lang=EN-US style='font-size:8.0pt;font-family:
"Verdana","sans-serif";color:black'>STStartPoint()</span></strong><span
lang=EN-US style='color:#1F497D'><o:p></o:p></span></p>
<p style='line-height:140%;vertical-align:top'><strong><span lang=EN-US
style='font-size:8.0pt;line-height:140%;font-family:"Verdana","sans-serif";
color:black'>STEndPoint()</span></strong><span lang=EN-US style='font-size:
8.0pt;line-height:140%;font-family:"Verdana","sans-serif";color:black'> is the
equivalent of <a href="http://msdn.microsoft.com/en-us/library/bb933844.aspx"
id="ctl00_rs1_mainContentContainer_ctl10">STPointN</a></span><code><span
lang=EN-US style='font-size:10.0pt;line-height:140%;color:black'>(x.STNumPoints())</span></code><span
lang=EN-US style='font-size:8.0pt;line-height:140%;font-family:"Verdana","sans-serif";
color:black'>.<o:p></o:p></span></p>
<p class=MsoNormal><strong><span lang=EN-US style='font-size:8.0pt;font-family:
"Verdana","sans-serif";color:black'>STNumPoints() </span></strong><span
lang=EN-US style='font-size:8.0pt;font-family:"Verdana","sans-serif";
color:black'>This method counts the points in the description of a <b>geography</b>
instance. Duplicate points are counted. If this instance is a <b>geometry</b> collection,
this method returns of the total number of points in each of the elements in
the collection.<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US style='color:#1F497D'><o:p> </o:p></span></p>
<p class=MsoNormal style='margin-bottom:7.5pt;line-height:140%;vertical-align:
top'><b><span lang=EN-US style='font-size:8.0pt;line-height:140%;font-family:
"Verdana","sans-serif";color:black'>STPointN()</span></b><span lang=EN-US
style='font-size:8.0pt;line-height:140%;font-family:"Verdana","sans-serif";
color:black'> returns the point specified by <i>expression</i> by ordering all
the points in the same order they would be output: </span><span lang=EN-US
style='font-size:8.0pt;line-height:140%;font-family:"Verdana","sans-serif";
color:red'>first by <b>geography</b> instance, then by ring within the instance
(if appropriate), and then by point within the ring. </span><span lang=EN-US
style='font-size:8.0pt;line-height:140%;font-family:"Verdana","sans-serif";
color:black'>This order is deterministic.<br>
If this method is called with a value less than 1, it throws an <b>ArgumentOutOfRangeException</b>.<br>
If this method is called with a value greater than the number of points in the
instance, it returns null.<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US style='color:#1F497D'><o:p> </o:p></span></p>
<p class=MsoNormal><span lang=EN-US style='color:#1F497D'>I hope this clarifies
a little the desired behavior for polygons and multi part geometries (</span><span
lang=EN-US style='color:red'>see in red</span><span lang=EN-US
style='color:#1F497D'>).<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US style='color:#1F497D'><o:p> </o:p></span></p>
<p class=MsoNormal><span lang=EN-US style='color:#1F497D'>As a minimal number
of functions, I guess these ones will suffice:<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US style='color:#1F497D'><o:p> </o:p></span></p>
<p class=MsoNormal style='margin-left:.5in'><span lang=EN-US style='color:#1F497D'>NumPoints(geom)<o:p></o:p></span></p>
<p class=MsoNormal style='margin-left:.5in'><span lang=EN-US style='color:#1F497D'>PointX(geom,
N) etc.<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US style='color:#1F497D'><o:p> </o:p></span></p>
<p class=MsoNormal><span lang=EN-US style='color:#1F497D'>Note the expression
engine supports embedded functions, therefore for getting the Start/End
points we can say:<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US style='color:#1F497D'><o:p> </o:p></span></p>
<p class=MsoNormal style='margin-left:.5in'><span lang=EN-US style='color:#1F497D'>PointX(geom,
1) etc.<o:p></o:p></span></p>
<p class=MsoNormal style='margin-left:.5in'><span lang=EN-US style='color:#1F497D'>PointX(geom,
NumPoints(geom)) etc.<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US style='color:#1F497D'><o:p> </o:p></span></p>
<p class=MsoNormal><span lang=EN-US style='color:#1F497D'><o:p> </o:p></span></p>
<p class=MsoNormal><span lang=EN-US style='color:#1F497D'>Dan.<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US style='color:#1F497D'><o:p> </o:p></span></p>
<p class=MsoNormal><span lang=EN-US style='color:#1F497D'><o:p> </o:p></span></p>
<div>
<div style='border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0in 0in 0in'>
<p class=MsoNormal><b><span lang=EN-US style='font-size:10.0pt;font-family:
"Tahoma","sans-serif"'>From:</span></b><span lang=EN-US style='font-size:10.0pt;
font-family:"Tahoma","sans-serif"'> fdo-internals-bounces@lists.osgeo.org
[mailto:fdo-internals-bounces@lists.osgeo.org] <b>On Behalf Of </b>Robert
Fortin<br>
<b>Sent:</b> Tuesday, November 04, 2008 4:41 PM<br>
<b>To:</b> FDO Internals Mail List<br>
<b>Subject:</b> RE: [fdo-internals] Request review of RFC 28
-AddStart/EndExpressionFunctions<o:p></o:p></span></p>
</div>
</div>
<p class=MsoNormal><span lang=EN-US><o:p> </o:p></span></p>
<p class=MsoNormal><span lang=EN-US style='color:olive'>Guys,<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US style='color:olive'><o:p> </o:p></span></p>
<p class=MsoNormal><span lang=EN-US style='color:olive'>Unless there is
standard out there, we can come up with whatever definition we want as long as
it is consistant and it makes sense.<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US style='color:olive'><o:p> </o:p></span></p>
<p class=MsoNormal><span lang=EN-US style='color:olive'>The RFC proposes the
following:<o:p></o:p></span></p>
<p><span lang=EN style='font-size:10.0pt;font-family:"Verdana","sans-serif";
color:black'>If the provided geometry is a point geometry, the result of the
Start/End functions is the x, y, z values of the point.<br>
If the provided geometry is a multi-point geometry, the result of the Start/End
functions is the x, y, z values of the first point.<o:p></o:p></span></p>
<p><span lang=EN style='font-size:10.0pt;font-family:"Verdana","sans-serif";
color:black'>>> I think Start should be referencing the first point and
End the last point in case of multi-point. <o:p></o:p></span></p>
<p><span lang=EN style='font-size:10.0pt;font-family:"Verdana","sans-serif";
color:black'>If the provided geometry is a line geometry, the result of the
Start/End functions is the x, y, z values of the start and end points of the
first line.<br>
If the provided geometry is a multi-line geometry, the result of the Start/End
functions is the x, y, z values of the start and end points of the first line.<o:p></o:p></span></p>
<p><span lang=EN style='font-size:10.0pt;font-family:"Verdana","sans-serif";
color:black'>>> Same here. Start – first point of first line,
End – last point of last line.<o:p></o:p></span></p>
<p><span lang=EN style='font-size:10.0pt;font-family:"Verdana","sans-serif";
color:black'>If the provided geometry is a polygon geometry, the result of the
Start/End functions is the x, y, z values of the start and end points of the exterior
ring of the polygon.<br>
If the provided geometry is a multi-polygon geometry, the result of the
Start/End functions is the x, y, z values of the start and end points of the
exterior ring of the first polygon.<o:p></o:p></span></p>
<p><span lang=EN style='font-size:10.0pt;font-family:"Verdana","sans-serif";
color:black'>>> Same again. Start – first point of first
ring, End – last point of last ring.<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US style='color:olive'>But we all know that it
is not valuable to use those on polygon or circle (which is just an arc) but I
don’t want the function to throw an error because a polygon geometry is
passed as input. <o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US style='color:olive'>Let’s agree on
what it should be and return it.<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US style='color:olive'><o:p> </o:p></span></p>
<p class=MsoNormal><span lang=EN-US style='color:olive'>RF<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US style='color:olive'><o:p> </o:p></span></p>
<div>
<div style='border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0in 0in 0in'>
<p class=MsoNormal><b><span lang=EN-US style='font-size:10.0pt;font-family:
"Tahoma","sans-serif"'>From:</span></b><span lang=EN-US style='font-size:10.0pt;
font-family:"Tahoma","sans-serif"'> fdo-internals-bounces@lists.osgeo.org
[mailto:fdo-internals-bounces@lists.osgeo.org] <b>On Behalf Of </b>Traian
Stanev<br>
<b>Sent:</b> Tuesday, November 04, 2008 3:15 PM<br>
<b>To:</b> FDO Internals Mail List<br>
<b>Subject:</b> RE: [fdo-internals] Request review of RFC 28
-AddStart/EndExpressionFunctions<o:p></o:p></span></p>
</div>
</div>
<p class=MsoNormal><span lang=EN-US><o:p> </o:p></span></p>
<p class=MsoNormal><span lang=EN-US style='color:#1F497D'><o:p> </o:p></span></p>
<p class=MsoNormal><span lang=EN-US style='color:#1F497D'>Moreover, what if the
geometry is a circle? </span><span lang=EN-US style='font-family:Wingdings;
color:#1F497D'>J</span><span lang=EN-US style='color:#1F497D'><o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US style='color:#1F497D'><o:p> </o:p></span></p>
<p class=MsoNormal><span lang=EN-US style='color:#1F497D'><o:p> </o:p></span></p>
<p class=MsoNormal><span lang=EN-US style='color:#1F497D'><o:p> </o:p></span></p>
<div style='border:none;border-left:solid blue 1.5pt;padding:0in 0in 0in 4.0pt'>
<div>
<div style='border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0in 0in 0in'>
<p class=MsoNormal><b><span lang=EN-US style='font-size:10.0pt;font-family:
"Tahoma","sans-serif"'>From:</span></b><span lang=EN-US style='font-size:10.0pt;
font-family:"Tahoma","sans-serif"'> fdo-internals-bounces@lists.osgeo.org
[mailto:fdo-internals-bounces@lists.osgeo.org] <b>On Behalf Of </b>Dan Stoica<br>
<b>Sent:</b> Tuesday, November 04, 2008 3:14 PM<br>
<b>To:</b> FDO Internals Mail List<br>
<b>Subject:</b> RE: [fdo-internals] Request review of RFC 28
-AddStart/EndExpressionFunctions<o:p></o:p></span></p>
</div>
</div>
<p class=MsoNormal><span lang=EN-US><o:p> </o:p></span></p>
<p class=MsoNormal><span lang=EN-US style='color:#1F497D'>Robert, returning to
the original issue: what is the meaning of PointX(geometry,
‘end’) for a polygon?<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US style='color:#1F497D'><o:p> </o:p></span></p>
<p class=MsoNormal><span lang=EN-US style='color:#1F497D'>Dan.<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US style='color:#1F497D'><o:p> </o:p></span></p>
<p class=MsoNormal><span lang=EN-US style='color:#1F497D'><o:p> </o:p></span></p>
<div>
<div style='border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0in 0in 0in'>
<p class=MsoNormal><b><span lang=EN-US style='font-size:10.0pt;font-family:
"Tahoma","sans-serif"'>From:</span></b><span lang=EN-US style='font-size:10.0pt;
font-family:"Tahoma","sans-serif"'> fdo-internals-bounces@lists.osgeo.org
[mailto:fdo-internals-bounces@lists.osgeo.org] <b>On Behalf Of </b>Robert
Fortin<br>
<b>Sent:</b> Tuesday, November 04, 2008 2:46 PM<br>
<b>To:</b> FDO Internals Mail List<br>
<b>Subject:</b> RE: [fdo-internals] Request review of RFC 28 -AddStart/EndExpressionFunctions<o:p></o:p></span></p>
</div>
</div>
<p class=MsoNormal><span lang=EN-US><o:p> </o:p></span></p>
<p class=MsoNormal><span lang=EN-US style='color:#003300'>I think there was
plenty of good idea of how far we can go with these kind of functions.
But, trying to go back to the original issue we were trying to resolve by
RFC-28 which is simply to get the coordinates values for the first and last
point…<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US style='color:#003300'><o:p> </o:p></span></p>
<p class=MsoNormal><span lang=EN-US style='color:#003300'>I think Romy has an
interesting proposal that makes the function evolutive over time and avoid over
populating the list of functions with new names each time we think of a new
possibility. It also makes it clear that it is about the points on the geometry
and not computed point as other functions like MidX or CentroidX would be
(but that a matter for another debate).<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US style='color:#003300'><o:p> </o:p></span></p>
<p class=MsoNormal><span lang=EN-US style='color:#003300'>I was thinking of
even rationalizing it further (by adding another enumeration parameter to
indicate x,y and z – we forgot about “m” by the way!) but I
think the name of the function PointX, PointY and PointZ are just clear enough.<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US style='color:#003300'><o:p> </o:p></span></p>
<p class=MsoNormal><span lang=EN-US style='color:#003300'>Can we go for that as
far as the RFC is concerned?<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US style='color:#003300'><o:p> </o:p></span></p>
<p class=MsoNormal><span lang=EN-US style='color:#003300'>RF<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US style='color:#003300'><o:p> </o:p></span></p>
<div style='border:none;border-left:solid blue 1.5pt;padding:0in 0in 0in 4.0pt'>
<p class=MsoNormal><span lang=EN-US style='color:#1F497D'><o:p> </o:p></span></p>
<div>
<div style='border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0in 0in 0in'>
<p class=MsoNormal><b><span lang=EN-US style='font-size:10.0pt;font-family:
"Tahoma","sans-serif"'>From:</span></b><span lang=EN-US style='font-size:10.0pt;
font-family:"Tahoma","sans-serif"'> fdo-internals-bounces@lists.osgeo.org
[mailto:fdo-internals-bounces@lists.osgeo.org] <b>On Behalf Of </b>Romica
Dascalescu<br>
<b>Sent:</b> Tuesday, November 04, 2008 11:27 AM<br>
<b>To:</b> FDO Internals Mail List<br>
<b>Subject:</b> RE: [fdo-internals] Request review of RFC 28
-AddStart/EndExpressionFunctions<o:p></o:p></span></p>
</div>
</div>
<p class=MsoNormal><span lang=EN-US><o:p> </o:p></span></p>
<p class=MsoNormal><span lang=EN-US style='color:#1F497D'>Hi,<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US style='color:#1F497D'><o:p> </o:p></span></p>
<p class=MsoNormal><span lang=EN-US style='color:#1F497D'>A different approach
is to create functions which takes a geometry and an enumeration, this way each
provider can implement all cases or just a few of them, e.g.:<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US style='color:#1F497D'><o:p> </o:p></span></p>
<p class=MsoNormal><span lang=EN-US style='color:#1F497D'>PointX(geom, enum)<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US style='color:#1F497D'>PointY(geom, enum)<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US style='color:#1F497D'>PointZ(geom, enum)<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US style='color:#1F497D'><o:p> </o:p></span></p>
<p class=MsoNormal><span lang=EN-US style='color:#1F497D'>Where enum can be:
‘start’, ‘end’, ‘min’, ‘max’,
‘centroid’, …<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US style='color:#1F497D'>For now we may
implement just a few of them (start, end) and in the future we could implement
more cases.<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US style='color:#1F497D'><o:p> </o:p></span></p>
<p class=MsoNormal><span lang=EN-US style='color:#1F497D'>Romy.<o:p></o:p></span></p>
</div>
</div>
</div>
</body>
</html>