Если будут большие объемы (много объектов) для копирования, то можно воспользоваться следующим кодом, который основан на прямых вызовах ГИС-ядра
Для копирования объектов необходимо открыть исходную карту и открыть или создать выходную карту в заданной проекции и системе координат.
Копирование объектов для трансформирования всей карты может иметь следующий вид:
int listcount = mapGetSiteListCount(hMap, hSite);
for (int list = 1; list <= listcount; list++)
{
int objectcount = mapGetSiteObjectCountInList(Map, hSite, list);
for (int object = 1; object <= objectcount; object++)
{
// Чтение объекта
if (mapReadObjectByNumber(hMap, hSite, hObj, list, number) == hObj)
{
// Перенос объекта на другую карту (hMap может не меняться)
if (mapChangeObjectMap(hObj, hMapNew, hSiteNew) != 0)
{
// Запись на новую карту
mapCommitObject(hObj);
}
}
}
}
Для копирования объектов необходимо открыть исходную карту и открыть или создать выходную карту в заданной проекции и системе координат.
Копирование объектов для трансформирования всей карты может иметь следующий вид:
int listcount = mapGetSiteListCount(hMap, hSite);
for (int list = 1; list <= listcount; list++)
{
int objectcount = mapGetSiteObjectCountInList(Map, hSite, list);
for (int object = 1; object <= objectcount; object++)
{
// Чтение объекта
if (mapReadObjectByNumber(hMap, hSite, hObj, list, number) == hObj)
{
// Перенос объекта на другую карту (hMap может не меняться)
if (mapChangeObjectMap(hObj, hMapNew, hSiteNew) != 0)
{
// Запись на новую карту
mapCommitObject(hObj);
}
}
}
}