纬度和度量在MySQL数据库中怎么存储

纬度和度量在MySQL数据库中怎么存储,第1张

可以使用字符串varchar,然后取出数据之后将字符串转化为double类型或float类型

可以存储这些经/纬度数据,如波纹管 -

$arr = array("13.692941, 100.750723", 

"13.70649,100.75405999999998",

"13.71334,100.75428999999997",

"13.72268,100.74638000000004")

// serialize data before save to database, you should deserialized that when you will use this data after query. 

$serializedArr = serialize($arr)

insert into geom (g) values ("{$serializedArr}")

mysql两点间距,你也自己弄成函数\x0d\x0a\x0d\x0a公式如下,单位米:\x0d\x0a第一点经纬度:lng1 lat1\x0d\x0a第二点经纬度:lng2 lat2\x0d\x0around(6378.138*2*asin(sqrt(pow(sin(\x0d\x0a(lat1*pi()/180-lat2*pi()/180)/2),2)+cos(lat1*pi()/180)*cos(lat2*pi()/180)*\x0d\x0apow(sin( (lng1*pi()/180-lng2*pi()/180)/2),2)))*1000)\x0d\x0a\x0d\x0a例如:\x0d\x0aSELECT store_id,lng,lat,\x0d\x0aROUND(6378.138*2*ASIN(SQRT(POW(SIN((22.299439*PI()/180-lat*PI()/180)/2),2)+COS(22.299439*PI()/180)*COS(lat*PI()/180)*POW(SIN((114.173881*PI()/180-lng*PI()/180)/2),2)))*1000)\x0d\x0aAS\x0d\x0a juli\x0d\x0aFROM store_info\x0d\x0aORDER BY juli DESC\x0d\x0aLIMIT 316

建议你看下MongoDB数据库。

MongoDB提供了一种GEO数据类型,专门处理地理位置坐标的,跟你这个应用场景极其吻合。

另外你的坐标数量是海量的,用MySQL很难抗的住。

MySQL到千万级的数据量就很吃力了。

两种方式不同点在于前者把数据作为文件上传,后者是把NSData作参POST上传,觉得作为客户端,其实工作量都差不多,关键是后台了,另外,文件上传的好处就是能知道上传进度,后者的乱码,我不知道你怎么传的,反正base64编码后再上传是没问题的。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/7264056.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-03
下一篇 2023-04-03

发表评论

登录后才能评论

评论列表(0条)

保存