2015-12-03 12:30

# 如何确定位置是否在正方形（lat，lon）PHP内

How can you figure out if this:

``````\$Now = array(
'lat' => '59.565423',
'long' => '7.347268'
);
``````

is inside this:

``````\$x = array(
'x1' => '59.570281',  // point 1, north west - lat
'y1' => '7.341667',   // ^^^^^^ - lon
'x2' => '59.570281',  // point 2, north east - lat
'y2' => '7.351087',   // ^^^^^^ - lon
'x3' => '59.568195',  // point 3, south east - lat
'y3' => '7.351087',   // ^^^^^^ - lon
'x4' => '59.568195',  // point 4, south west - lat
'y4' => '7.341667'    // ^^^^^^ - lon
);
``````

Supposed to return 1 if inside or 0 if outside.

• 点赞
• 写回答
• 关注问题
• 收藏
• 邀请回答

#### 1条回答默认 最新

• douxu5233 2015-12-03 12:30
已采纳

Here is how:

• first you need to check if longitude is within your |---| area so:

`if(\$Now['long'] > \$x['y1'] && \$Now['long'] < \$x['y2'])`

• then you need to check if the latitude is within the parameters:

`if(\$Now['lat'] < \$x['x1'] && \$Now['lat'] > \$x['x4'])`

Whole function:

``````function InsideOrNot(\$Now, \$x){
//If 0 is within |----| (|--0--|)
if(\$Now['long'] > \$x['y1'] && \$Now['long'] < \$x['y2']){

//if 0 is within ___
//                |
//               ___
if(\$Now['lat'] < \$x['x1'] && \$Now['lat'] > \$x['x4']){
return 1;
}

else{
return 0;
}
}
else{
return 0;
}

}
``````

Now: `echo InsideOrNot(\$Now, \$x);`

点赞 评论