• MapEdit++ (Альтернатива GPSMapEdit)

  • Интрумент для редактирования карт
Интрумент для редактирования карт
 #13   IgorA100
 20 дек 2009, 19:17
Альтернатива GPSMapEdit, имеющая множество преимуществ, которые можно долго описывать. Рекомендуется установить и попробовать в ней работать ;)

К уникальным достоинствам MapEdit++ можно отнести следующее:

- Анализ топологии линий на наличие графов как по типам объектов, так и по роутинговым классам.

- Возможность стягивания линий.

- Удобный изменяемый алгоритм "прилипания" узлов.

- Удобная визуализация узлов.

- Бинарные операции над полигонами.

- Открытие больших файлов растровых картинок (подложка) в форматах: "*.gif", "*.bmp", "*.tiff"

- Возможность раздельного контроля отображения объектов по видам (полигон, линия, точка, присоединенные растровые картинки, треки) на карте.

- Используется бОльшая точность хранения и обработки объектов (отосительно GPSMapEdit), что положительно сказывается при отображении объектов на Дальнем Востоке.

- Обрезка карты по произвольному полигону.

- Возможность применять к карте Lua скрипты.



Временные недостатки:

- Отсутствие работы с Google.



Если при запуске появляется ошибка, то нужно установить дополнительные библиотеки:
Для 32 битной системы
Для 64 битной системы

Страница проекта: http://sourceforge.net/projects/gmeaddons/
Вложения
(1.16 МБ) 2947 скачиваний
 #15   IgorA100
 22 дек 2009, 10:52
Обновление MapEdit++ (mepp++) до версии 1.0.56.340

Изменения:

339
~In Gpx exporter doubles now are saved with WriteDF instead of WriteF
Tomasz Babczyński patches:
~Restored missing "Down" button in IDD_RGN_EXTRAS dialog with Russian locale
~Fix issue that if one wants fill extras from the neighbors values and the list is empty, the last value is used

337
+ExtractPolygonParts action
~locking g_cs replaced by locking map_t::m_Mtx

334
Adaptation of Tomasz Babczyński patches:
+extra map feature parameters: Label2, Label3
~mastering extra map feature parameters inside the properties dialog
+extra parameters founding in the nearest map features

333
~Maps zoom levels merge fixed
~Parity ComboBox in Node Properties / Numbers tab fixed
~Garmin map skin appliance crash fixed (thanks to Tomasz Babczyński)
+Automatic map skin remove on load error
Вложения
(1.35 МБ) 545 скачиваний
(1.17 МБ) 492 скачивания
(1.17 МБ) 558 скачиваний
 #19   IgorA100
 21 янв 2010, 12:19
Обновление MapEdit++ (mepp++) до версии 1.0.56.344

Изменения:

341
~Generated static libraries names changed
~TypeSet features list extended for the objects properties editing managing. This replaces direct TypeSetId comparison.
~GisRX russification fixed

342
~Some override OnNotify methods were corrected by calling inherited overridden methods
~Map property pages ported to CPropertyPages::CPage classes
+HasIndexedCity virtual method for type to check "IndexedCity" flag availability

343
~All dialogs ported to CDialog classes (property pages to be done)
+GisRX POI type with 120 kph speed limit
+Postal address items lists: countries and regions
~mp file load speedup
~GetTextAsFloat, GetTextAsArc precision fixing
+Addressing information abandoning warning
~Address numbers drawing fixing

344
+OSM xml export
~Logger interface extended

Скачать MapEdit++ ( mepp++ ) можно тут:
Вложения
(1.18 МБ) 471 скачивание
(1.18 МБ) 438 скачиваний
 #27   IgorA100
 31 янв 2010, 23:28
Обновление MapEdit++ (mepp++) до версии 1.0.61.355

355
~Fixed self intersections test in polygons
~Fixed Win32 Release linking with lcmBuilderDLL.lib (thanks to Tomasz Babczyński)
~Fixed version string in dialogs (thanks to Tomasz Babczyński)
~Fixed Link warning LNK4199

354
+Tab / Shift-Tab to choose another head item in selection (second / last one respectively)
+Feet units in AttractLinesWizard
~Controls helpers files moved to Controls folder
~Simplification of function invocation in the GUI thread context
~Fixed map flickering on error selection in VerifyMap dialog
~Fixed status string update invoked outside of GUI thread context

353
~Fixed attachments list dialog crash on raster maps
~Fixed map skins error on raster maps loading
+CloneableLayer interface
~Fixed raster layers disappearing on backup action is performing
-Suppressing useless map backup on contours generation canceling

352
~Files enumeration refactoring
~Fixed bookmark types loading
+Adding of Unicode strings into ComboBox

349
Migration to 1.0.58.0
!Note: Lowrance LCM export is available only in 32bit versions.
~Actions files reorganization (actions SplitRoutingRgns and NormalizeRgn are not used anywhere)
~Fixed libraries output paths

348
Migration to 1.0.57.0
~RouteParams extracted from rgn_extra_t

347
~Geodesy and Geometry unit tests reorganization
~Fixed polygon centroid calculation
~Coding style update

346
+GisRX maps.exe exporter
+GisRX specific map header keys edit property page
~Map header keys manipulation and joining refactored
~Some of cGPSMapper exporter specific map header keys made 'nonstandard'
~FileSystem::Exception FullDescription result string extended with the error code information

345
+Map skin updating after map load

Скачать MapEdit++ ( mepp++ ) можно тут:
Вложения
(1.36 МБ) 434 скачивания
 #28   IgorA100
 01 фев 2010, 11:31
Обновление MapEdit++ (mepp++) до версии 1.0.61.356

356:
~Polyline trimming context factory moved to MapEngine library
~Fixed edge nodes filter for the rectangle trimming tool
Вложения
(1.47 МБ) 415 скачиваний
(1.48 МБ) 410 скачиваний
(1.36 МБ) 409 скачиваний
(1.36 МБ) 728 скачиваний
 #30   IgorA100
 07 фев 2010, 14:58
Обновление MapEdit++ (mepp++) до версии 1.0.61.362

362:
+VC Express configurations
!Note: Due to MsXML usage, based on ATL classes, .GPX loader is disabled in Express compilations
~A lot of warnings were fixed or suppressed

361:
~Straighting up polygons rendering modes

360:
~Images importers moved to separate project - ImageEngine
+Jpeg images importer based on libjpeg of the Independent JPEG Group
~Fixed Tiff LZW decoder (line data allocation and prediction)
~Old image loading mechanics replaced by the images importers factory
~UTurns restrictions are not generated on the external nodes clean/cleanup
~Fixed ImageBuffer:: GetBits/SetBits

359:
~Fixed AV in rendering routing test helper map

358:
~Fixed .shp polygons loading in some cases
~Fixed waypoint type description retrieving
+Extended .dbf fields support

357:
~TrimMap algorithms moved to MapEngine library
+Few MapEngine tests
!Note: TrimMap to be fixed
Вложения
(1.54 МБ) 408 скачиваний
(1.54 МБ) 407 скачиваний
(1.42 МБ) 405 скачиваний
(1.42 МБ) 445 скачиваний
 #41   IgorA100
 06 мар 2010, 20:49
Обновление MapEdit++ (mepp++) до версии 1.0.61.376

Изменения:
~.GPX loader ported to Xml namespace classes. Now it is available in Express compilations.
~Changed temporary buffer management in rendering functions
+Note drawing properties dialog
+Saving custom colors list between SelectColor() calls
~Fixed Notes list sorting by color and by width
~Fixed NoteDrawingColors saving in settings.
+Track color by speed drawing, based on Evgeniy Zyuzin open source GPSMapEdit branch (lango edition).
+Pen destruction in CColors objects if different pen style is requested.
~Simplified CColors objects management.
~Fixed 'Time' column in track points property page
~Import/Export Wizards ported to classes CPropertyPages::CPage (.SHP import wizard to be done)
~Changed array length calculation from sizeof(array)/sizeof(array[0]) to _countof(array)
~.SHP import wizard ported to classes CPropertyPages::CPage. It's Units and Levels pages replaced by CUnitsWizardPage and CLevelsWizardPage.
~Options property pages ported to classes CPropertyPages::CPage
~Fixed some constant segment selection #pragmas
~Merged GetWindowLongPtr / SetWindowLongPtr functions used in windows' subclassing
+Some coding style rules
+Warnings suppression in ImageExporter and CTifRawDecoder declarations
+Property value in-place editing in Extra Object Attributes property page (based on bookmark properties dialog mechanics)
~Removed static fields from bookmark properties dialog
~"Same Type" check box title in Extra Object Attributes property page made more descriptive
~Fixed label striping in .OSM exporter
+Turn restriction kind and it's: loading, saving, editing on 'Routing' tab in 'Node' property pages and column in restrictions list
~Changed copy/paste format
+Few road signs
~Fixed some road signs images
~map feature comment and extra attributes strings were made wide char ones
+ExtraDb command line parameter on export to GisRX/maps.exe
+Path canonicalization function
~Fixed cities list
~SetSelectionScale calls replaced by updated ShowSelectionOnMap ones
+Selection of the map features having current city in address information
+ZipCode saving style option


Скачать MapEdit++ ( mepp++ ) можно тут:
Вложения
(1.59 МБ) 404 скачивания
(1.58 МБ) 399 скачиваний
(1.46 МБ) 437 скачиваний
(1.46 МБ) 466 скачиваний
 #43   IgorA100
 15 мар 2010, 13:52
Обновление MapEdit++ (mepp++) до версии 1.0.61.379

+Via sections in restriction actions
~Fixed crash on Paste action undo
~Edit actions in Undo/Redo stacks made automatically destructable
~Fixed CBookmarkAction destruction on combined action ending
+Additional routing graph nodes creation on semi-routable roads after restriction creation
+Filtering unused u-turn restrictions created during trimming
~Fixed dummy typeset used for testing
+Ways arrangement in node routing properties page
~OsmXml exporter divided to files
~Some fixes of spelling
Вложения
(1.59 МБ) 483 скачивания
(1.59 МБ) 511 скачиваний
(1.46 МБ) 538 скачиваний
(1.46 МБ) 686 скачиваний
 #45   IgorA100
 20 мар 2010, 17:44
Обновление MapEdit++ (mepp++) до версии 1.0.61.383

~Fixed About box
~'Via nodes' column in restriction lists was replaced by 'Via roads'
+Research unit test for standard library functions testing
~DrawManeuver extracted from NodeRouting to be used in RestrictionProperties in future
~Refactored Node properties pages
~Fixed turn restrictions loading
+Via nodes column in turn restrictions dialog
~Fixed restriction adding/removing actions that fail to undo after sequence of operations having been performed on the same restriction
~Restriction properties dialog separated to pages
+Additional ways arrangements
+Restriction properties dialog (time periods editing not implemented yet)
Вложения
(1.59 МБ) 680 скачиваний
(1.6 МБ) 705 скачиваний
(1.46 МБ) 730 скачиваний
(1.47 МБ) 1716 скачиваний
 #88   IgorA100
 19 июн 2010, 23:23
Обновление MapEdit++ (mepp++) до версии 1.0.61.403

~Fastening map features trimming by polygon
~Main window manipulation functions moved to MainWindow.cpp
~Core lua bindings moved to BindToLua.cpp
+ParseDecU64 to parse 64-bit unsigned integers
+Xml::Node begin and end positions in xml file to track source fragments of map features
+Pre-alpha version of osm xml importer
~Fixed default windows procedure calling for the main window
+English to Russian transliteration
+OSM xml import wizard
~Few DXF importer fixes
~Fixed LowranceLcmSaver.cpp compilation for Win32 platform
+Simple SAX parser over Expat SAX parser
~Minimization of memory consumption in OSM xml loader. Now data is collected directly on SAX parser events without XML DOM construction.
+'Check bridges on routing nodes generation' option. If it is selected roads crossing marked by bridge POI over it will not generate routing graph node.
~Edit options page in Options dialog was rearranged
~Fixed map features placement into 'save list' in OSM and DXF loaders
~OSM XML parser extracted from loader
+Turn restrictions loading from OSM
~Field parsing helper moved to Core/Strings/Parse.cpp
~Rearranged vector file formats loaders/savers source files
+OSM object id importing option
~NMEA0183 parser moved to Engine
~NMEA0183 parser test moved to UnitTests
+Some Garmin IMG format templates for 010 Editor
~Setting saving progress in files savers via _pProgress argument
~Huffman code table builder constructor fix
+Minimum routing nodes distance in VerifyMap dialog
+Polygon clipping unit test with clipping issue to be solved
+Core::LruCacheWithLocks and it's tests
~luabind 0.9
-SmallerTypeCheck in lua Debug configurations for x64 platform
+binding map, layers, features, feature's components to lua
+test of boost::intrusive_ptr usage in lua script bindings
-SmallerTypeCheck in luabind Debug configurations for x64 platform
+Dummy application object binding to encapsulate application specific methods
+Map::Layers::Layer binding to fix map layers iteration
~Minor code style fixes
+ScriptLogic to encapsulate recent scripts list and script execution during map editing
+'Script' menu
~ChangeTypeSet algorithm was extracted from ChangeTypeSet action and binded to lua
~label2 and label3 type changed to std::wstring
+label2 and label3 added into Copy/Paste data
+test of boost::shared_ptr holder usage in lua binding
+map feature element points binding
+[SCRIPT ...] .mp sections for the map event scripts. Note: script lines should not start from white space.
+OnLoad and OnSave map events' scripts appliance.
~Script system, progress processor and cancel tracker now passed via CMapLoader's and CMapSaver's constructors. Not via Load() and Save() methods' arguments.
~Fixed some of fast_floor() usages
~Fixed runtime error raised on map loading
~Fixed multipolygon's tags loading from outer members
~Fixed Lowrance LCM compilation for Win32 platform

Одной из особенностей 1.0.61.403 версии является то, что мерр++ теперь умеет выполнять произвольные Lua скрипты, что является мощным прорывом в обработке карт и альтернативой утилите mp2mp. При помощи скриптов можно выполнять различные манипуляции с картой и объектами на ней.
Скрипт записывается в обычный текстовый файл с расширением *.lua и вызывается на выполнение через меню.
Пример скрипта:

Код: Выделить всёDescribeMap = function(map)
  local i = 0
  local fc = 0
  local layersInfo = ""

  for layer in map:Layers() do
    i = i + 1

    if string.len(layersInfo) ~= 0 then
      layersInfo = layersInfo .. "\r\n"
    end

    local fl = layer:ToFeatureLayer()

    local count = 0
    for obj in fl:Features() do
      count = count + 1
    end

    if fl ~= nil then
      layersInfo = layersInfo .. "Feature layer \'" .. fl.Name .. "\' of kind " .. fl.Kind .. " contains " .. fl.FeaturesCount .. " feature(s) (" .. count .. " by iter)"
      fc = fc + fl.FeaturesCount
    else
      layersInfo = layersInfo .. "Layer \'" .. layer.Name .. "\' is not a feature layer"
    end
  end

  InfoMsgBox("map: " .. map.LayersCount .. " iterated: " .. i .. " features: " .. fc .. "\r\n layers:\r\n" .. layersInfo)
end

map = GetMap()
DescribeMap(map)

В дальнейшем будут приведены еще примеры скриптов для работы с картой.

P.S. По языку Lua можно почитать тут:
http://ru.wikipedia.org/wiki/Lua
http://www.lua.org/docs.html
http://www.lua.ru/doc/

И на других доступных ресурсах необъятной паутины...
Вложения
(1.69 МБ) 448 скачиваний
(1.7 МБ) 461 скачивание
(1.54 МБ) 389 скачиваний
(1.54 МБ) 517 скачиваний