Клуб API Карт

JSON и properties

Пост в архиве.

Добрый день!

Получаю данные для загрузки объектов на карту из БД в виде JSON

ответ скрипта содержит данные подобного вида (координаты декартовы)

 {"id1":{"geometry":{"type":"Point","coordinates": [1.0, 0.0]},

           "properties":{"hintContent":"hello world", "balloonContent":"hello for all", "iconContent":"hello"},

           "options":{"id_creator": 40,"preset": "twirl#greenStretchyIcon"}},

  "id2":{"geometry":{"type":"LineString","coordinates": [[1.0, 1.0], [2.0, 1.0]]},

           "options":{"id_creator": 40,"strokeWidth": 3,"strokeColor": "#FFAAFF","strokeOpacity": 1,"strokeStyle": "solid"}},

"status": "OK"}

Все, что содержится в секциях geometry и options благополучно присваивается объектам. а вот секция properties начисто игнорируется. В чем может быть загвоздка?

Присваивание объекту делаю таким образом

$.getJSON("getmapobj.php", function(json){
if (json.status == 'OK') {
var myobj=json;

for (var key in myobj) { //key=id1, id2....
var m = new ymaps.GeoObject({geometry: myobj[key].geometry}, myobj[key].options);

......

таким образом срабатывает, options присваиваются

если пишу 

var m = new ymaps.GeoObject({geometry: myobj[key].geometry},  myobj[key].properties, myobj[key].options);  

то ни принятые properties, ни options к объекту не применяются :(

 

UPD а вот такая конструкция, как оказалось, работает 

var m = new ymaps.GeoObject({geometry: myobj[key].geometry}, myobj[key].options);
m.properties.set(myobj[key].properties)

чудеса.... 

2 комментария
Sergey Konstantinov
28 января 2016, 04:15
В строгом соответствии с документацией и примерами в ней :)
http://api.yandex.ru/maps/doc/jsapi/2.x/ref/reference/GeoObject.xml

Спасибо!

Итак, окончательный рабочий вариант записи

var m = new ymaps.GeoObject({geometry: myobj[key].geometry, properties:myobj[key].properties}, myobj[key].options);