Я пытаюсь получить координаты маршрута из моей базы данных, которая содержит набор длинных / длинных строк.
Предположим, я сохранил информацию о пути (широта / долгота) в моей таблице следующим форматом:
{lat:36.26479895658131,lng: 49.99473060839841},{lat:36.20609142498267,lng: 49.860834734374976},{lat:36.114064680113565,lng: 49.61570228808591}
Вот код для подготовки вышеуказанного результата:
<script>
var coordinates= [];
document.getElementById("field12").value = coordinates;
function myFunction(latLng) //latLng is comming from myFunction(e.latLng)
{
var str = latLng;
var res = String(latLng).split("(");
var res1 = String(res).split(")");
var res2 = String(res1).split(",");
var final = "{lat:"+res2[1]+",lng:"+ res2[2]+"}";
coordinates.push(final);
document.getElementById("field12").value = coordinates;
}
</script>
Теперь я собираюсь присвоить эти координаты пути в моем коде скрипта Java. Представьте, что я поместил строку координат в переменную, как показано ниже:
var flightPlanCoordinates = [];
function RetrieveRouteCoordinates() {
$.post('retrieveRouteCoordinates.php', function(data) {
var myObj1 = JSON.parse(data);
for(var t = 0; t < 2; t++)
{
if(myObj1[t] != null)
{
flightPlanCoordinates[t] = myObj1[t].routCoordinates;
}
}
});
}
И затем я установил один из путей в качестве примера, например:
poly.setPath(flightPlanCoordinates[0]);
Вообще, мне нужно знать, правильный ли мой формат координат перед вставкой в базу данных или нет? если нет, покажите мне правильный формат сохранения, а затем укажите, как я могу назначить их в поли.
Числа с плавающей запятой (также известные как «числа с плавающей запятой», «двойные числа» или «действительные числа») могут быть указаны с использованием любого из следующих синтаксисов:
пример:
<?php
$a = 1.234;
$b = 1.2e3;
$c = 7E-10;
?>
пожалуйста, проверьте документацию о числах с плавающей точкой объясняется Вот
Ты можешь использовать number_format((float)$number, 14, '.', '');
Чтобы получить их
for(var i = 0; i<location_array.length; i++)
{ var loc = location_array[i] ; //==>(12.77, 24.87)
var split_arr1 = loc.split("(");
var result_split_arr1 = split_arr1[1].split( ")" );
var split_latLon = result_split_arr1[0];
var latLng = new google.maps.LatLng(split_lat, split_lon);
path.push(latLng)
marker = new google.maps.Marker({
position: latLng,
map: map
});
}
var flightPath = new google.maps.Polyline({
path: path,
strokeColor: "#FF0000",
strokeOpacity: 1.0,
strokeWeight: 2,
map: map
});
}
Других решений пока нет …