Я закодировал пути нескольких полилиний с помощью google.maps.geometry.encoding.encodePath()
и хочу сохранить их в таблице MySQL.
Проблема: Прежде чем сохранить их в таблице, я нарисовал полилинии, как показано в верхней половине изображения ниже. Однако после сохранения их в таблице, их извлечения и повторного рисования путь, похоже, изменился! Что случилось?
Дополнительная информация : Я заметил, что если бы я записал только что закодированный путь в console.log
, скопировал из журнала консоли и использовал этот скопированный путь, чтобы нарисовать новую ломаную линию, ломаная искажается при определенные области, например, что произошло после использования закодированного пути, полученного из базы данных!
Обновление
Полилиния с использованием только что закодированного пути
Код JS
encoded_path = google.maps.geometry.encoding.encodePath(path);
console.log(encoded_path);
decoded_path = google.maps.geometry.encoding.decodePath(encoded_path);
var polyOptions = {
strokeColor: "#970E04" ,
strokeOpacity: 1.0 ,
strokeWeight: 2 ,
path: decoded_path ,
clickable: false,
map: map
}
polyline = new google.maps.Polyline(polyOptions);
Кодированный путь из console.log
axwaGtbcqL BgArBmAjCcBlBcCnBeChB_BrAmAxByBjCoCkAqBmByCu@qA[i@~BmAdAq@FEzAqAvAsA|@{@DCr@{@DIjAuA|@cAz@}@~AeB\[LZxAjDJINM|AkAxAxCfAw@g@jAeBpEOr@Ox@CTeAlMM~AYhDc@pE_AtHGj@m@
Gm @ DHA @ hFaAbM_AfJ] jDAlA {HHV @ eAdFy @ bCcBpEeBzDyArDu @ E_AnFs@|Fq@fGKtKaEqCgBmB_GmFcJaM}@nBg@BbA}CpAaEvAoEnGyOvDuPDSPYAIIMMMGOMMIIKKKQIMIKIKa@gAQ_@Q[CCY_@OSQYQQOOSMSOa@]g@g@UWSUYm@Uk@]qAKe@Ia@I_@Iy@Es@C_AAw@A]Ca@G[Qy@GSKa@M]M_@Qa@M]IOGKQSGIIG}@w@{AgAiAaAWSUOWOQIMEKCICOGMCKEQC_DuA?GbByB\_@~GaIxCgDl@s@bBkBnBcBzCqC
Ai @ PCMA ^ MAD @ Qa
Полилиния с использованием пути, полученного из базы данных
Значение хранится в столбце VARCHAR(255)
Скопировано с помощью Navicat
axwaGtbcqL BgArBmAjCcBlBcCnBeChB_BrAmAxByBjCoCkAqBmByCu@qA[i@~BmAdAq@FEzAqAvAsA|@{@DCr@{@DIjAuA|@cAz@}@~AeB[LZxAjDJINM|AkAxAxCfAw@g@jAeBpEOr@Ox@CTeAlMM~AYhDc@pE_AtHGj@m@
Gm @ DHA @ hFaAbM_AfJ] jDAlA {HHV @ eAdFy @ bCcBpEeBzDyArDu @ `E_AnFs @ | Fq @ fGKtKaEqCgBmB_GmFcJaM} @
Полилиния с использованием пути, полученного из базы данных с VARCHAR(1000)
Значение хранится в столбце VARCHAR(1000)
Скопировано с помощью Navicat
axwaGtbcqL BgArBmAjCcBlBcCnBeChB_BrAmAxByBjCoCkAqBmByCu@qA[i@~BmAdAq@FEzAqAvAsA|@{@DCr@{@DIjAuA|@cAz@}@~AeB[LZxAjDJINM|AkAxAxCfAw@g@jAeBpEOr@Ox@CTeAlMM~AYhDc@pE_AtHGj@m@
Gm @ DHA @ hFaAbM_AfJ] jDAlA {HHV @ eAdFy @ bCcBpEeBzDyArDu @ E_AnFs@|Fq@fGKtKaEqCgBmB_GmFcJaM}@nBg@BbA}CpAaEvAoEnGyOvDuPDSPYAIIMMMGOMMIIKKKQIMIKIKa@gAQ_@Q[CCY_@OSQYQQOOSMSOa@]g@g@UWSUYm@Uk@]qAKe@Ia@I_@Iy@Es@C_AAw@A]Ca@G[Qy@GSKa@M]M_@Qa@M]IOGKQSGIIG}@w@{AgAiAaAWSUOWOQIMEKCICOGMCKEQC_DuA?GbByB\_@~GaIxCgDl@s@bBkBnBcBzCqC
Ai @ PCMA ^ MAD @ Qa
Полилиния путем декодирования закодированного пути, записанного в console.log
Код JS
//encoded path copied from console.log output from the very first code in post
encoded_path = 'axwaGtbcqLBgArBmAjCcBlBcCnBeChB_BrAmAxByBjCoCkAqBmByCu@qA[i@~BmAdAq@FEzAqAvAsA|@{@DCr@{@DIjAuA|@cAz@}@~AeB\[LZxAjDJINM|AkAxAxCfAw@g@jAeBpEOr@Ox@CTeAlMM~AYhDc@pE_AtHGj@m@Gm@dHa@hFaAbM_AfJ]jDAlA{Hhv@eAdFy@bCcBpEeBzDyArDu@E_AnFs@|Fq@fGKtKaEqCgBmB_GmFcJaM}@nBg@BbA}CpAaEvAoEnGyOvDuPDSPYAIIMMMGOMMIIKKKQIMIKIKa@gAQ_@Q[CCY_@OSQYQQOOSMSOa@]g@g@UWSUYm@Uk@]qAKe@Ia@I_@Iy@Es@C_AAw@A]Ca@G[Qy@GSKa@M]M_@Qa@M]IOGKQSGIIG}@w@{AgAiAaAWSUOWOQIMEKCICOGMCKEQC_DuA?GbByB\_@~GaIxCgDl@s@bBkBnBcBzCqCAi@pCmA^mAd@qA';
decoded_path = google.maps.geometry.encoding.decodePath(encoded_path);
var polyOptions = {
strokeColor: "#970E04" ,
strokeOpacity: 1.0 ,
strokeWeight: 2 ,
path: decoded_path ,
clickable: false,
map: map
}
polyline = new google.maps.Polyline(polyOptions);
Путь, который также не работал правильно
Я заметил, что в середине этих закодированных строк есть новые строки? Кроме того, закодированная строка разбивает строку кода на 2 строки, в результате чего система проверки ошибок в моем редакторе отображает предупреждение.
Код JS (неправильный формат)
encoded_path = '{traGxcspLaIkFvAwH} BgA {EzEjCgJmEwBmDvGoHpAkLQpAqGyF_CbCuH ^} FlDwEo
Cyn @ у @ г [YL {с @ термометру @ е * +1112 * EdQoBtMaJzSoE f@bMzLlHRj@lHrFhCnHrNvAk@qBeOpAcAlRvCfEgQt@oB_JeBmTmL}DqJl@qHbCmEzFc]xr@nT|IoKf@
RlGdFtCuMpEzAbS} [qGe {@ dOsEnGjZhInDrHwIjEdH_OtdAf @ ~ WnM`F ~ AyN_DgEzh @ nKgTvVbBrNoZvB_SvLwGfJwT ~ ш @ Wg? GBzB? XFdAt @ XFN @ bBve @? nPoKv [kGwBsCdGoCtBwFoBwCfFcBvBoArDsC] {AxA ';
Кодированный путь
{traGxcspLaIkFvAwH} {Bga EzEjCgJmEwBmDvGoHpAkLQpAqGyF_CbCuH ^} FlDwEo
Cyn @ у @ г [YL {с @ термометру @ е * * EdQoBtMaJzSoE тысячу сто двадцать две f@bMzLlHRj@lHrFhCnHrNvAk@qBeOpAcAlRvCfEgQt@oB_JeBmTmL}DqJl@qHbCmEzFc]xr@nT|IoKf@
RlGdFtCuMpEzAbS} [qGe {@ dOsEnGjZhInDrHwIjEdH_OtdAf @ ~ WnM`F ~ AyN_DgEzh @ nKgTvVbBrNoZvB_SvLwGfJwT ~ ш @ Wg? GBzB? XFdAt @ XFN @ bBve @? nPoKv [kGwBsCdGoCtBwFoBwCfFcBvBoArDsC] {AxA