27.05.2020, 01:08
|
Аспирант
|
|
Регистрация: 05.09.2019
Сообщений: 84
|
|
распарсить строку
Доброе время суток есть строка надо распарсить и
вывести в консоли точки из polygon не знаю как сделать ранее парсил строку JSON.parse но здесь не
не выйдет
"},{"id_gbr":"2","region":"Киев","number":"72","color":"#fccc00","test":"50.49028, 30.59039; 50.48491, 30.58503; 50.43714, 30.62448;50.43885, 30.638;50.48427, 30.61513;50.48435, 30.61558;50.49705, 30.61581","polygon":"[{"lat": 50.490536193901626, "lng": 30.406556772949216}, {"lat": 50.47984084266476, "lng": 30.406929946258515}, {"lat": 50.47078196302313, "lng": 30.406959796813908}, {"lat": 50.459762927731, "lng": 30.40719115930176}, {"lat": 50.45292392846263, "lng": 30.45728290557861}, {"lat": 50.44994631827171, "lng": 30.4758771926422}, {"lat": 50.45739306296883, "lng": 30.48030941610716}, {"lat": 50.46396401821503, "lng": 30.487648547058143}, {"lat": 50.465084495378484, "lng": 30.487091254669167}, {"lat": 50.46862927142601, "lng": 30.489870630294718}, {"lat": 50.47374748220552, "lng": 30.49342754299164}, {"lat": 50.47902899701488, "lng": 30.479904148681612}, {"lat": 50.485619797196634, "lng": 30.470794103759772}, {"lat": 50.49062613468771, "lng": 30.458250831298756}, {"lat": 50.48960708146419, "lng": 30.450326954315074}, {"lat": 50.48733200046696, "lng": 30.443948029724083}, {"lat": 50.48942559218542, "lng": 30.427226507171667}, {"lat": 50.48880683956265, "lng": 30.429551666610678}, {"lat": 50.490763651412536, "lng": 30.415650960502603}]"}]]
|
|
27.05.2020, 02:49
|
|
Профессор
|
|
Регистрация: 20.12.2009
Сообщений: 1,714
|
|
Не знаю, что у вас произошло с JSON, но та часть строки, которую вы предоставили, из неё видно, что значение свойства polygon является строкой в формате JSON, которое можно разобрать и точки вывести на карту.
<body>
<script>
var coords = [{"lat": 50.490536193901626, "lng": 30.406556772949216}, {"lat": 50.47984084266476, "lng": 30.406929946258515}, {"lat": 50.47078196302313, "lng": 30.406959796813908}, {"lat": 50.459762927731, "lng": 30.40719115930176}, {"lat": 50.45292392846263, "lng": 30.45728290557861}, {"lat": 50.44994631827171, "lng": 30.4758771926422}, {"lat": 50.45739306296883, "lng": 30.48030941610716}, {"lat": 50.46396401821503, "lng": 30.487648547058143}, {"lat": 50.465084495378484, "lng": 30.487091254669167}, {"lat": 50.46862927142601, "lng": 30.489870630294718}, {"lat": 50.47374748220552, "lng": 30.49342754299164}, {"lat": 50.47902899701488, "lng": 30.479904148681612}, {"lat": 50.485619797196634, "lng": 30.470794103759772}, {"lat": 50.49062613468771, "lng": 30.458250831298756}, {"lat": 50.48960708146419, "lng": 30.450326954315074}, {"lat": 50.48733200046696, "lng": 30.443948029724083}, {"lat": 50.48942559218542, "lng": 30.427226507171667}, {"lat": 50.48880683956265, "lng": 30.429551666610678}, {"lat": 50.490763651412536, "lng": 30.415650960502603}];
/* на странице */
var dir = coords.map(({ lat, lng }) => `!4m3!3m2!1d${lat}!2d${lng}`).join("");
var pb = `!1m${4*coords.length+2}!4m${4*coords.length+1}!3e2${dir}!5m1!1sru`;
var url = `https://www.google.com/maps/embed?pb=${pb}`;
var frame = document.createElement("iframe");
frame.src = url;
frame.style.cssText = "position:absolute;border:none;width:100%;height:100%;left:0;top:0;";
document.body.appendChild(frame);
/* в консоли */
var dir = coords.map(({ lat, lng }) => [lat, lng].join(",")).join("/");
var url = `https://www.google.com/maps/dir/${dir}/data=!4m2!4m1!3e2`;
console.log("Точки на карте", url);
</script>
Последний раз редактировалось Malleys, 27.05.2020 в 03:04.
|
|
27.05.2020, 11:33
|
Аспирант
|
|
Регистрация: 05.09.2019
Сообщений: 84
|
|
я получаю из sql через $pointsPolygon = json_encode($pointsPolygon); потому такой страний джон еслиб не бил масив в sql в поле полигон JSON.parse помог а так я решил проблему если кому интересно вот код
const array = JSON.parse(dotsPolygon.replace(/"(\[.*?\])"/g, "$1"));
console.log(array[0].polygon)
спс за помощь
|
|
27.05.2020, 11:43
|
Профессор
|
|
Регистрация: 14.01.2015
Сообщений: 12,989
|
|
Сообщение от misha.korolcov
|
потому такой страний джон
|
И что в нем странного?
|
|
28.05.2020, 22:16
|
Аспирант
|
|
Регистрация: 05.09.2019
Сообщений: 84
|
|
тем что json.parse не парсит а пишет невалидний джейсон потому тока через регулярку
|
|
29.05.2020, 02:31
|
Профессор
|
|
Регистрация: 14.01.2015
Сообщений: 12,989
|
|
А почему вы не разбираетесь с причиной тут "я получаю из sql через $pointsPolygon = json_encode($pointsPolygon);"?
|
|
|
|