The*_*imp 27 gps geolocation coordinates mkmapview mkannotation
我有两个UITextField,用户可以在纬度和经度中输入,这些坐标然后用于在MKMapView上创建一个引脚.
我想找到一种方法来验证他们输入的值是实际的GPS坐标还是只是一堆垃圾.有没有办法做到这一点?
rid*_*rid 82
的纬度必须在-90和90与之间的数字经度 -180和180之间.
Sum*_*rel 10
以下是在 JavaScript 中验证它的函数。
const isLatitude = num => isFinite(num) && Math.abs(num) <= 90;
Run Code Online (Sandbox Code Playgroud)
const isLongitude = num => isFinite(num) && Math.abs(num) <= 180;
Run Code Online (Sandbox Code Playgroud)
使用遵循纬度和经度的正则表达式,我们可以进行验证。
在Objective-C中使用转义符:
纬度正则表达式:
@"^(\\+|-)?((\\d((\\.)|\\.\\d{1,6})?)|(0*?[0-8]\\d((\\.)|\\.\\d{1,6})?)|(0*?90((\\.)|\\.0{1,6})?))$"
Run Code Online (Sandbox Code Playgroud)
经度正则表达式:
@"^(\\+|-)?((\\d((\\.)|\\.\\d{1,6})?)|(0*?\\d\\d((\\.)|\\.\\d{1,6})?)|(0*?1[0-7]\\d((\\.)|\\.\\d{1,6})?)|(0*?180((\\.)|\\.0{1,6})?))$"
Run Code Online (Sandbox Code Playgroud)
纬度和经度的正则表达式:
纬度正则表达式:
^(\+|-)?((\d((\.)|\.\d{1,6})?)|(0*?[0-8]\d((\.)|\.\d{1,6})?)|(0*?90((\.)|\.0{1,6})?))$
Run Code Online (Sandbox Code Playgroud)
经度正则表达式:
^(\+|-)?((\d((\.)|\.\d{1,6})?)|(0*?\d\d((\.)|\.\d{1,6})?)|(0*?1[0-7]\d((\.)|\.\d{1,6})?)|(0*?180((\.)|\.0{1,6})?))$
Run Code Online (Sandbox Code Playgroud)