HOBJ hObj = mapCreateSiteObject(hmap, hsite, IDDOUBLE2); // создаём пустой объект на карте (контейнер)
std::cout<<"hObj = "<<hObj<<std::endl;
mapRegisterObject(hObj, 31632000, LOCAL_SQUARE);
mapAppendPointPlane(hObj, 6170267, 7411269, 0);
mapCommitObject(hObj);
int i = mapObjectKey(hObj);
listKeyObj.append(i);
std::cout<<"unique key obj = "<<i<<std::endl;
mapFreeObject(hObj);
ui->viewMap->Repaint();
В результате, на карте не вижу добавленного объекта, хотя методы все вернули не 0 значение и Repaint я делаю. Подскажите пожалуйста, какие необходимо предпринять меры, для того, чтобы увидеть, добавленный объект на карте.
Точно не в этом причина, т.к это опечатка, я не весь код привела. Для примера, вот точечный объект добавляю и тоже методы возвращают не 0, а на карте ничего не отображается.
Код
HOBJ hObj = mapCreateSiteObject(hmap, hsite, IDDOUBLE2); // создаём пустой объект на карте (контейнер)
mapRegisterObject(hObj, 53160000, LOCAL_POINT);
mapAppendPointPlane(hObj, 6170267, 7411269, 0);
mapCommitObject(hObj);
mapObjectKey(hObj);
listKeyObj.append(i);
mapFreeObject(hObj);
ui->viewMap->Repaint();
В данном случае Вы используете два экземпляра открытой карты в памяти (открытый с помощью функции mapOpenData() и с помощью графического компонента QDMapView). Для избежания двойственности необходимо работать с идентификатором карты HMAP, полученным из компонента QDMapView с помощью функции QDMapView::GetMapHandle().