地理位置經(jīng)緯度在Mysql中用什么字段類型來存
讓客戶滿意是我們工作的目標(biāo),不斷超越客戶的期望值來自于我們對這個行業(yè)的熱愛。我們立志把好的技術(shù)通過有效、簡單的方式提供給客戶,將通過不懈努力成為客戶在信息化領(lǐng)域值得信任、有價值的長期合作伙伴,公司提供的服務(wù)項目有:空間域名、虛擬主機、營銷軟件、網(wǎng)站建設(shè)、蕭縣網(wǎng)站維護(hù)、網(wǎng)站推廣。
正常的做法是用nvarchar保存,應(yīng)為google map,設(shè)置地點用String就可以了。
google.map({'center':'35.3232432434,139.32434234'})
復(fù)雜的計算,偉大的Google都已經(jīng)做了。我們?yōu)槭裁催€要再進(jìn)行一次呢?
告訴我,你們?yōu)槭裁捶堑米屪砸涯敲醇m結(jié)?難道人生最大的敵人永遠(yuǎn)都是自己。
1. 直接按字符串整個存進(jìn)去就好;
2. 或者你把度分秒的數(shù)字分開,分別存到三個數(shù)字類型的字段
mysql兩點間距,你也自己弄成函數(shù)\x0d\x0a\x0d\x0a公式如下,單位米:\x0d\x0a第一點經(jīng)緯度:lng1 lat1\x0d\x0a第二點經(jīng)緯度: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數(shù)據(jù)庫。
MongoDB提供了一種GEO數(shù)據(jù)類型,專門處理地理位置坐標(biāo)的,跟你這個應(yīng)用場景極其吻合。
另外你的坐標(biāo)數(shù)量是海量的,用MySQL很難抗的住。
MySQL到千萬級的數(shù)據(jù)量就很吃力了。
兩種方式不同點在于前者把數(shù)據(jù)作為文件上傳,后者是把NSData作參POST上傳,覺得作為客戶端,其實工作量都差不多,關(guān)鍵是后臺了,另外,文件上傳的好處就是能知道上傳進(jìn)度,后者的亂碼,我不知道你怎么傳的,反正base64編碼后再上傳是沒問題的。