base64 前的 binary 这个可能是 protobuf ?
我照 @
misdake 的格式设计了 proto3
syntax = "proto3";
message LBSMessage {
int64 id = 1;
repeated GeoPoint edge=2;
repeated GeoPoint dots=3;
repeated Beacon beacon=4;
}
message GeoPoint {
double lat = 1;
double lng = 2;
}
message Beacon {
GeoPoint point=1;
int64 type = 2;
}
编码出来的有点像 数据没用一样的
```swift
import Foundation
var lbsm = LBSMessage()
lbsm.id=0x33000020
var p = GeoPoint()
p.lat = 539816.8966
p.lng = 2510931.2209
lbsm.edge=[p,p]
lbsm.dots=[]
for _ in 1...24{
var tmpPoint = GeoPoint()
tmpPoint.lat = Double(Int.random(in: 5398091233...5400999999))/1000
tmpPoint.lng = Double(Int.random(in: 25010000000...25119000000))/1000
lbsm.dots.append(tmpPoint)
}
var b = Beacon()
b.point = p
b.type = 0x9601
lbsm.beacon=[b,b,b,b]
let binaryData: Data = try lbsm.serializedData()
print(binaryData.base64EncodedString())
```
输出
`
CKCAgJgDEhIJuycPy1F5IEERgnNGnCkoQ0ESEgm7Jw/LUXkgQRGCc0acKShDQRoSCVYOLVIjmFRBEfLSTT5853dBGhIJ9P3U8P2ZVEERF9nOye7ld0EaEgmamZnpB5pUQRE3iUF8zeB3QRoSCX0/NU6/mFRBEawcWn6K83dBGhIJf2q8hGaaVEERg8DKC+jfd0EaEgk9Ctc70JlUQRHZzvf74Nt3QRoSCSUGgTUqmFRBEbTIdsJJ4ndBGhIJDAIrZ5yXVEERvHSTLjvcd0EaEgliEFjpXJpUQRFzaJFPo9x3QRoSCaabxPAvmVRBEdEi27Pp5XdBGhIJRrbzvYKZVEERTDeJFW3fd0EaEgliEFiR7pdUQRE/NV6+UPR3QRoSCZMYBI4rmFRBEY2XbnAn7ndBGhIJkxgELgyaVEER5dAimfrtd0EaEgk3iUE4W5pUQREOLbIj++J3QRoSCYPAylEumVRBEWQ73yUI6HdBGhIJ30+Npy+YVEER7nw/FyTbd0EaEgliEFhJOZpUQRFKDAJxTuh3QRoSCXE9CtfBl1RBEYts57Vv7HdBGhIJ7nw/BT+aVEERhxbZjBLld0EaEgm8dJNAK5hUQRF9PzX6/fF3QRoSCfp+apSSmVRBEVK4Hqk+3XdBGhIJz/dTe1OaVEER2/l+nALvd0EaEgnufD9dN5hUQRGyne9VdOl3QSIYChIJuycPy1F5IEERgnNGnCkoQ0EQgawCIhgKEgm7Jw/LUXkgQRGCc0acKShDQRCBrAIiGAoSCbsnD8tReSBBEYJzRpwpKENBEIGsAiIYChIJuycPy1F5IEERgnNGnCkoQ0EQgawC
Program ended with exit code: 0