Given two points on planet Earth, computes the distance between them using the “Great Circle” method. This is a distance of a straight line between the two points, “as the crow flies”.
[{"$type":"CommentBlock","parts":{"comment":{"value":"computes the great circle distance between two points on the globe"},"next":{"$type":"CommentBlock","parts":{"comment":{"value":"test data below should result in 344 Km, or 214 Mi."},"next":{"$type":"CommentBlock","parts":{"comment":{"value":"{\n \"Lat1\": 51.50853,\n \"Lon1\": -0.12574,\n \"Lat2\": 48.85341,\n \"Lon2\": 2.34880,\n \"Mi/Km\": \"Km\"\n}"},"next":{"$type":"DeclareVariableBlock","parts":{"itemVar":{"value":"radLat1"},"type":{"value":"number"},"default":{"$type":"MathOperationBlock","parts":{"v":2,"parts":[{"$type":"MathConstantBlock","parts":{"value":{"value":"Math.PI"}}},"*",{"$type":"GetVariableBlock","parts":{"variable1":{"value":"Lat1"}}},"/",{"$type":"NumberBlock","parts":{"number":{"value":"180"}}}]}},"next":{"$type":"DeclareVariableBlock","parts":{"itemVar":{"value":"radLon1"},"type":{"value":"number"},"default":{"$type":"MathOperationBlock","parts":{"v":2,"parts":[{"$type":"MathConstantBlock","parts":{"value":{"value":"Math.PI"}}},"*",{"$type":"GetVariableBlock","parts":{"variable1":{"value":"Lon1"}}},"/",{"$type":"NumberBlock","parts":{"number":{"value":"180"}}}]}},"next":{"$type":"DeclareVariableBlock","parts":{"itemVar":{"value":"radLat2"},"type":{"value":"number"},"default":{"$type":"MathOperationBlock","parts":{"v":2,"parts":[{"$type":"MathConstantBlock","parts":{"value":{"value":"Math.PI"}}},"*",{"$type":"GetVariableBlock","parts":{"variable1":{"value":"Lat2"}}},"/",{"$type":"NumberBlock","parts":{"number":{"value":"180"}}}]}},"next":{"$type":"DeclareVariableBlock","parts":{"itemVar":{"value":"radLon2"},"type":{"value":"number"},"default":{"$type":"MathOperationBlock","parts":{"v":2,"parts":[{"$type":"MathConstantBlock","parts":{"value":{"value":"Math.PI"}}},"*",{"$type":"GetVariableBlock","parts":{"variable1":{"value":"Lon2"}}},"/",{"$type":"NumberBlock","parts":{"number":{"value":"180"}}}]}},"next":{"$type":"DeclareVariableBlock","parts":{"itemVar":{"value":"theta"},"type":{"value":"number"},"default":{"$type":"MathOperationBlock","parts":{"v":2,"parts":[{"$type":"GetVariableBlock","parts":{"variable1":{"value":"Lon1"}}},"-",{"$type":"GetVariableBlock","parts":{"variable1":{"value":"Lon2"}}}]}},"next":{"$type":"DeclareVariableBlock","parts":{"itemVar":{"value":"radTheta"},"type":{"value":"number"},"default":{"$type":"MathOperationBlock","parts":{"v":2,"parts":[{"$type":"MathConstantBlock","parts":{"value":{"value":"Math.PI"}}},"*",{"$type":"GetVariableBlock","parts":{"variable1":{"value":"theta"}}},"/",{"$type":"NumberBlock","parts":{"number":{"value":"180"}}}]}},"next":{"$type":"DeclareVariableBlock","parts":{"itemVar":{"value":"dist"},"type":{"value":"number"},"default":{"$type":"MathOperationBlock","parts":{"v":2,"parts":[{"$type":"TrigonometryBlock","parts":{"operator":{"value":"sin"},"value":{"$type":"GetVariableBlock","parts":{"variable1":{"value":"radLat1"}}}}},"*",{"$type":"TrigonometryBlock","parts":{"operator":{"value":"sin"},"value":{"$type":"GetVariableBlock","parts":{"variable1":{"value":"radLat2"}}}}},"+",{"$type":"TrigonometryBlock","parts":{"operator":{"value":"cos"},"value":{"$type":"GetVariableBlock","parts":{"variable1":{"value":"radLat1"}}}}},"*",{"$type":"TrigonometryBlock","parts":{"operator":{"value":"cos"},"value":{"$type":"GetVariableBlock","parts":{"variable1":{"value":"radLat2"}}}}},"*",{"$type":"TrigonometryBlock","parts":{"operator":{"value":"cos"},"value":{"$type":"GetVariableBlock","parts":{"variable1":{"value":"radTheta"}}}}}]}},"next":{"$type":"SetVariableBlock","parts":{"variable1":{"value":"dist"},"value":{"$type":"TrigonometryBlock","parts":{"operator":{"value":"acos"},"value":{"$type":"GetVariableBlock","parts":{"variable1":{"value":"dist"}}}}},"next":{"$type":"SetVariableBlock","parts":{"variable1":{"value":"dist"},"value":{"$type":"MathOperationBlock","parts":{"v":2,"parts":[{"$type":"GetVariableBlock","parts":{"variable1":{"value":"dist"}}},"*",{"$type":"NumberBlock","parts":{"number":{"value":"180"}}},"/",{"$type":"MathConstantBlock","parts":{"value":{"value":"Math.PI"}}}]}},"next":{"$type":"SetVariableBlock","parts":{"variable1":{"value":"dist"},"value":{"$type":"MathOperationBlock","parts":{"v":2,"parts":[{"$type":"GetVariableBlock","parts":{"variable1":{"value":"dist"}}},"*",{"$type":"NumberBlock","parts":{"number":{"value":"60"}}},"*",{"$type":"NumberBlock","parts":{"number":{"value":"1.1515"}}}]}},"next":{"$type":"SwitchBlock","parts":{"subject":{"$type":"GetVariableBlock","parts":{"variable1":{"value":"Mi/Km"}}},"cases":[{"values":[{"$type":"LiteralStringBlock","parts":{"text":{"value":"Mi"}}}],"statement":{"$type":"CommentBlock","parts":{"comment":{"value":"do nothing: already in Miles"}}}},{"values":[{"$type":"LiteralStringBlock","parts":{"text":{"value":"Km"}}}],"statement":{"$type":"SetVariableBlock","parts":{"variable1":{"value":"dist"},"value":{"$type":"MathOperationBlock","parts":{"v":2,"parts":[{"$type":"GetVariableBlock","parts":{"variable1":{"value":"dist"}}},"*",{"$type":"NumberBlock","parts":{"number":{"value":"1.609344"}}}]}}}}}],"defaultStatement":{"$type":"SetVariableBlock","parts":{"variable1":{"value":"dist"},"value":{"$type":"NumberBlock","parts":{"number":{"value":"0"}}}}},"next":{"$type":"ReturnBlock","parts":{"value":{"$type":"RoundBlock","parts":{"mode":{"value":"Math.round"},"value":{"$type":"GetVariableBlock","parts":{"variable1":{"value":"dist"}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}]
(triple-click to select this code. Then copy, open a snap workspace, and right-click in the workspace to “paste JSON” it into your Epicor CPQ instance.)