Как вы, возможно, уже знаете, предпочтительным форматом сериализации данных ГИС (Точка, Линия ...) в формате JSON является использование GeoJSON. Например, у меня есть объект, содержащий поле точек, поле точек сериализуется в хорошо известном формате geoJSON.
"value": [
{
"address_id_destination": "1070",
"address_id_source": "1069",
"client_cash_payed": 150000,
"creation_date": "2018-09-09T13:34:32.910103+00:00",
"delivery_confirmation_code": "",
"destination_city": "ساری",
"destination_region_id": 16,
"destination_region_location": {
"id": {
"coordinates": [
53.05863279999994,
36.5658729
],
"type": "Point"
},
"properties": {},
"type": "Feature"
},
"discount": 0,
"dispatch_date": "2018-09-10",
"dispatch_date_ms": 1536537600000,
"dispatch_hour": "18:03",
"driver_cellphone": "",
"driver_commission": 15000,
"driver_income": 135000,
"driver_name": "",
"height": 1,
"length": 0,
}
Теперь, если мой бэкэнд-API позволяет мне выбирать между методами сериализации (например, с использованием заголовка Accept) и я могу использовать двоичные протоколы (MessagePack, CBOR ...), как мне сериализовать мои поля Geo? Должен ли я использовать GeoJSON или использовать WKB?
Изменить: Существует широко известный формат для сериализации данных Geo в Google ProtoBuf, известный как GeoBuf. Мне нужно что-то вроде GeoBuf для других двоичных протоколов!