• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 376
  • Last Modified:

FileMaker Equivalent of pow()

Latitude to Google tiles

I am looking for the pow(() and deg2rad() equivalent in FileMaker

I believe deg2rad() =  lat * pi / 180.

The FileMaker Calculated Field:
/*floor((1 - log(tan(LL_Y * pi / 180) + 1 / cos(LL_Y * pi / 180)) / pi) /2 * pow(2, LAYER);*/

Is started with this below from a php example that works.

floor((1 - log(tan(deg2rad($lat)) + 1 / cos(deg2rad($lat))) / pi()) /2 * pow(2, $zoom));

More language examples here:
http://wiki.openstreetmap.org/wiki/Slippy_map_tilenames

Thanks
0
ALASKASTREETMASTER
Asked:
ALASKASTREETMASTER
  • 3
  • 2
  • 2
2 Solutions
 
ALASKASTREETMASTERAuthor Commented:
LL_Y =  61.449269; latitude
LL_X = -149.348145; longitude
LAYER = 13; zoom level

answers should be
697 for xtile and 2311 for ytile;

I have the xtile working in FileMaker. I believe I am having problems with the deg2rad()conversion. Any help would be appreciated. Both PHP statements work perfectly in PHP.
The FM conversion for ytile is off by about a third.

PHP:
$ytile = floor((1 - log(tan(deg2rad($lat)) + 1 / cos(deg2rad($lat))) / pi()) /2 * pow(2, $zoom));

FM:
Floor((1 - Log(Tan( LL_Y * (Pi / 180)) + 1 / Cos(LL_Y * (Pi / 180))) / Pi) /2 * (2 ^  LAYER))

*/ The FileMaker conversion of the xtile works, so I believe I have the pow() correct. */
PHP:
$xtile = floor((($lon + 180) / 360) * pow(2, $zoom));

FM:
Floor(((LL_X + 180) / 360) * (2  ^  LAYER))
0
 
historychefCommented:
FileMaker has a Radians( angleInDegrees ) function built in, so you don't need to write your own deg2rad() function.

Simple math gives you pow( x; n ) = exp( n * ln( x ) )
0
 
Will LovingPresidentCommented:
I haven't dug into your math, but just FYI, FileMaker does have two functions that you might find useful here:

Degrees( )
Purpose: Converts angleInRadians to degrees.
Format: Degrees(angleInRadians)
http://www.filemaker.com/help/html/func_ref3.33.113.html#1033232

Radians( )
Purpose: Converts angleInDegrees to radians.
Format: Radians(angleInDegrees)
http://www.filemaker.com/help/html/func_ref3.33.115.html#1033314

And of course, I think you've figured out that Pow() is simply ^  so for example 2 cubed is 2^3 = 8
0
Cloud Class® Course: CompTIA Healthcare IT Tech

This course will help prep you to earn the CompTIA Healthcare IT Technician certification showing that you have the knowledge and skills needed to succeed in installing, managing, and troubleshooting IT systems in medical and clinical settings.

 
ALASKASTREETMASTERAuthor Commented:
Thank you, I used the radians function but still get the same answer.  Must be something wrong with FM.

LL_Y =  59.57882161; latitude
LL_X = -151.43554688; longitude
LAYER = 11; zoom level

Longitude works fine in FileMaker.

The correct tile for Lat = 599 and is what PHP comes up with.  FM comes up with 839.

Does not work in FM
Floor((1 - Log(Tan(Radians(LL_Y)) + 1 / Cos(Radians(LL_Y))) / Pi) /2 *  (2 ^  LAYER) )

works in PHP

$ytile = floor((1 - log(tan(deg2rad($lat)) + 1 / cos(deg2rad($lat))) / pi()) /2 * pow(2, $zoom));
0
 
Will LovingPresidentCommented:
The math looks the same so I'm wondering if it's an order of operations issue. Sometimes it can be useful to put extra parenthesis around sections that should be calculated together even if you think it should normally work based on standard order of operations.
0
 
historychefCommented:
There's nothing wrong with FileMaker in this case. FileMaker's "Log" function returns the log to the base 10. You need to use the "Ln" function in the latitude calculation for the natural log. (PHP's "log" function returns the natural log.)
0
 
ALASKASTREETMASTERAuthor Commented:
That worked!  Thank you all for your help.
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

Join & Write a Comment

Featured Post

Free Tool: Subnet Calculator

The subnet calculator helps you design networks by taking an IP address and network mask and returning information such as network, broadcast address, and host range.

One of a set of tools we're offering as a way of saying thank you for being a part of the community.

  • 3
  • 2
  • 2
Tackle projects and never again get stuck behind a technical roadblock.
Join Now