Я храню свои прямоугольники в базе данных так:
1) передача через ajax координаты прямоугольника в PHP-скрипт;

rectangle.getBounds()  

2) сохраните прямоугольник в mysql (с помощью скрипта PHP)

Теперь я хотел бы нарисовать прямоугольники, хранящиеся в базе данных mysql:
1) читать координаты;

$rectangle = $row['rectangle']    

$ rectangle имеет следующую структуру ((x1, y1), (x2, y2))
2) передать через ajax скрипту javascript.

echo json_encode($rectangle);  

В javascript «$ rectangle» становится «координатой»
3) наконец нарисуйте прямоугольник

var r = new google.maps.Rectangle({bounds: coordinate, ...});
r.setMap(map);  

К сожалению, вместо прямоугольников отображается сообщение об ошибке синтаксического анализа.
Есть идеи о моих ошибках?

Примечание: надеюсь, что этот упрощенный код понятен. Если нет, я могу добавить код.

0
Bertaud 6 Июн 2013 в 02:12
Как выглядит «координата»?
 – 
geocodezip
6 Июн 2013 в 02:18

1 ответ

Лучший ответ

Свойство bounds RectangleOptions является объектом google.maps.LatLngBounds. Вам нужно преобразовать значение, возвращаемое из вашей базы данных, в единицу.

Выделите значения координат из строки и используйте их для создания google.maps.LatLngBounds объект.

1
geocodezip 6 Июн 2013 в 02:25
Но rectangle.getBounds - это объект LatLngBounds, не так ли?
 – 
Bertaud
6 Июн 2013 в 02:30
Это было до того, как вы преобразовали его в строку и сохранили в своей базе данных. Когда он возвращается как JSON, это просто строка, она содержит данные, необходимые для создания объекта, но это не объект.
 – 
geocodezip
6 Июн 2013 в 02:35
Затем $ _POST ['..'] преобразует объект в строку. Разве нельзя хранить объект в базе данных?
 – 
Bertaud
6 Июн 2013 в 02:43