Google maps JS > PHP

Привет. Вопрос не связан с Yii но есть возможность что хоть здесь найду поддержку. Хочу сделать так что бы при отображении объекта геокодинга информация об объекте сразу передавалась в мой PHP скрипт. Пытаюсь передать полученные координаты и информацию из JS Google maps в свой PHP скрипт в виде массива.





 function addAddressToMap(response) {

map.clearOverlays();


place = response.Placemark[0];


point = new GLatLng(place.Point.coordinates[1],

                            place.Point.coordinates[0]);

        marker = new GMarker(point);

        map.addOverlay(marker);





$.post("main/geo",place);




}




В результате в своем PHP скрипте получаю только:





Array

(

[id] => p1

[address] => Нью-Йорк, NY, USA

[AddressDetails] => [object Object]

[ExtendedData] => [object Object]

[Point] => [object Object]

)






Как можно преобразовать эти JS объекты в полноценный массив или JSON и передать это все в мой PHP скрипт?

Может это поможет:

http://code.google.com/intl/ru/apis/maps/documentation/services.html

???

Не все так просто уже всю документацию по API перерыл и пока ничего. Если создавать запрос из PHP скрипта к серверам гугл и получать ответ в JSON то все отлично. А вот как все это вытащить из JS крипта непонятно. Ладно буду мозговать дальше. Спасибо.

Давай подойдем с другой стороны.

Что необходимо чтобы пришло в php скрипт. В чем идеал?

В PHP скрипт должен придти в таком виде, ну или почти таком:





{

  "name": "1600 Amphitheatre Parkway, Mountain View, CA",

  "Status": {

    "code": 200,

    "request": "geocode"

  },

  "Placemark": [ {

    "id": "p1",

    "address": "1600 Амфитеатр-Паркуэй, Маунтин-Вью, CA 94043, USA",

    "AddressDetails": {

   "Accuracy" : 8,

   "Country" : {

      "AdministrativeArea" : {

         "AdministrativeAreaName" : "CA",

         "SubAdministrativeArea" : {

            "Locality" : {

               "LocalityName" : "Mountain View",

               "PostalCode" : {

                  "PostalCodeNumber" : "94043"

               },

               "Thoroughfare" : {

                  "ThoroughfareName" : "1600 Amphitheatre Pkwy"

               }

            },

            "SubAdministrativeAreaName" : "Santa Clara"

         }

      },

      "CountryName" : "USA",

      "CountryNameCode" : "US"

   }

},

    "ExtendedData": {

      "LatLonBox": {

        "north": 37.4251466,

        "south": 37.4188514,

        "east": -122.0811574,

        "west": -122.0874526

      }

    },

    "Point": {

      "coordinates": [ -122.0843700, 37.4217590, 0 ]

    }

  } ]

}






Т.е в пунктах AddressDetails, ExtendedData и Point должны быть подпункты но вместо них приходит только [object Object].

Не подойдет?

Надо на стороне JS сначала разобрать объект и уже потом передавать то, что тебе необходимо на сервер…

Я так в начале и сделал:





var geo = new Array();

geo[0] =  (place.AddressDetails.Country.CountryName);

geo[1] =  (place.AddressDetails.Country.CountryNameCode);

geo[2] =  (place.AddressDetails.Country.AdministrativeArea.AdministrativeAreaName);

geo[3] =  (place.AddressDetails.Country.AdministrativeArea.SubAdministrativeArea.SubAdministrativeAreaName);




$.post("main/geo", {'geo[]':geo });




И все вроде бы нормально но в некоторых запросах отсутствует допустим SubAdministrativeArea в итоге в массив валится undefined и работа скрипта на этом заканчивается. Можно ли это как то победить?

Если у кого возникнет такая проблема с Google maps то по этому адресу лежит волшебный скрипт который позволяет решить проблему undefined. Тема закрыта.

AddressLoop