Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2004.04.11;
Скачать: [xml.tar.bz2];

Вниз

Цифровая карта   Найти похожие ветки 

 
freeek   (2004-03-24 14:45) [0]

Уважаемые форумяне подскажите как лучше реализовать следующую идею: нужно написать программу в которой была бы карта города (обыкновенный bmp), которую можно маштабировать (просто менять маштаб) и на этой карте в разных местах, чтобы можно было ставить объекты, которым можно было бы присваивать разные параметры (название, номер и т.д.). Как лучше это сделать. Подскажите с чего начать. Спасибо.


 
freeek   (2004-03-24 14:46) [1]

а может быть есть примеры на что-то похожее. Буду благодарен любому совету.


 
freeek   (2004-03-24 14:51) [2]

help please!


 
just me   (2004-03-24 14:51) [3]

Не изобретать велосипед, а "сесть" на готовый и стандартный формат и инструментальное средство для GIS, например, MapInfo, MapObjects etc


 
Курдль ©   (2004-03-24 14:53) [4]

"Обыкновенный BMP" города типа Москвы может не поместиться в Ваш компьютер...
Рекомендую метафайл.


 
freeek   (2004-03-24 14:54) [5]

Кстати это гораздо сложнее, мне не нужна такая крутость. Тогда более конкретный вопрос, как мне размесить рисунок карты на форме, так что-бы его можно было-бы маштабировать?


 
freeek   (2004-03-24 14:54) [6]

А у нас город не большой, с этим проблем нет :)


 
Digitman ©   (2004-03-24 15:05) [7]


> Уважаемые форумяне


ладно хоть не "уважаемые армяне"))

однако, и у нас город небольшой, но в нем, наверно, живут таки "участники форума" ...

ну это так, к слову ..

а касаемо сабжа - в [3] была дана, imho, наилучшая рекомендация .. к которой следует прислушаться ... ВНЕ зависимости от "у нас город не большой"


 
Defunct ©   (2004-03-24 15:15) [8]

> так что-бы его можно было-бы маштабировать?

Canvas.CopyRect
Canvas.StretchDraw


Но тем не менее, все прислушайтесь к [3].


 
freeek   (2004-03-24 15:18) [9]

В общем ничего путного никто не сказал. Мне нужна автономная программа, а не куча компонентов в хвосте.


 
freeek   (2004-03-24 15:19) [10]

О спасибо Defunct!


 
nejest   (2004-03-24 15:31) [11]

1. С начала нужно определится с функциональностью программы, и в соответствиии с этим разделить создание программы на отдельные этапы. И уже после этого, в процессе разработки, задавать конкретные вопросы.
2. Если ты хочешь пользоватся растровой основой (bmp файл), то дополнительно, тебе нужно создать файл, в котором хранится информация об объектах и их координатах. ИМХО для нормальной карты нужно нанести столько объектов(домов, улиц, дорог, маршрутов транспорта), что по ним можно построить векторную карту.
3. Маштабирование, это наименьшая проблемма из тех, что могут встретится при создании программы. Одно из решений (не самое лутшее, но одно из самых простых): считываешь из файла в память массив нужную часть карты. Потом выводишь на экран не по 1 пикселу, а выводить вместо  каждого пиксала несколько. При уменьшении необходиходимо в каждый пиксел выводить цвет приобладающий ,в тех пикселах, которые вы уменьшаете до 1. Все будет выглядеть с зазубринами, но будет работать.
P.S. Спрашивай, если что непогнятно.


 
Rem ©   (2004-03-24 15:45) [12]

Года четыре назад был написан один небольшой проект - движок для векторной карты.
За полторы недели из BMP перегнали (вручную) в векторный формат карту города (населением 400 тыс. чел.). И работало это очень быстро на процессоре i486 dx2 80 MHz.
Потому что формат был очень простой: полигоны и текст. Используется целочисленная арифметика, поэтому все "летает".
И еще при этом к каждому объекту можно привязать любую инфу, так как каждый объект имеет свой уникальный идентификатор.
Объекты можно редактировать, создавать новые и пр.
Поддерживается неограниченное (в пределах емкости TList) количество слоев с управлением видимости/доступности/атрибутов цвета и пр.
Есть такое понятие, как "привязочные точки" - аналог геодезических "реперов". При помощи них осуществляется мгновенная навигация по карте.
В связи с тем, что формат - векторный, то и масштабирование произвольное. Кстати, в настройках вновь создаваемой карты можно указать точность представления координат точек, максимальные размеры.
А карта 400 тыс. города (с улицами, реками, лесами и названиями улиц и мн. др) занимает что-то около 400-500 кБайт.
(В самой программе) БД парадоксовские создавать и привязать к изображению можно.

P.S. А BMP с более-менее подходящим разрешением (небольшого города) будет весить сотни МБайт, а то и ГБайты.

P.P.S. Насчет исходников: к сожалению, я переехал в другой город, а исходники остались дома.

P.P.P.S. Хочешь - скину демку.


 
freeek   (2004-03-24 15:56) [13]

Спасибо за советы. Карту я уже экспортировал в wmf. Весит меньше метра. Сделал следующим образом. Положил на форму TImage в него загрузил карту. Положил ScrollBar"ы, с помощью которых перемещаюсь по карте. Теперь нужно придумать как на этот TImage положить объекты....


 
Digitman ©   (2004-03-24 16:03) [14]


> freeek   (24.03.04 15:56) [13]


неверным путем идете, товарисч)


> как на этот TImage положить объекты


а никак ! не было даже попытки преобразовать исх.данные в гипермедиаформат ... теми или иными способами/средствами .. и далее - сплошной геморрой ... ВНЕ зависимости от размера города


 
Defunct ©   (2004-03-24 16:04) [15]

freeek   (24.03.04 15:56) [13]

На Image ложить можно только изображение. Объекты храните в чем-то более подходещем (список, массив).


 
Rem ©   (2004-03-24 16:28) [16]

> как на этот TImage положить объекты

Отрисовывать самому на Canvas. Но этого мало. Нужен редактор объектов (для создания/редактирования). Напишете такой редактор - и можно выкидывать WMF.

Да, вот еще: WMF использует для хранения координат smallint (-32768..32767).


 
Rem ©   (2004-03-24 16:36) [17]

Кстати, каким образом Вы умудрились преобразовать BMP в WMF? Corel Trace?


 
freeek   (2004-03-24 17:17) [18]

Нет у меня карта изначально была в кореловском формате, я ее просто сохранил в вмф


 
Erik ©   (2004-03-24 17:30) [19]

Тебе дело говорят, если будеш сам все делать то провозишся в 5 раз больше минимум!
Посмотри сылки там все упрощено
http://www.vkasoft.narod.ru/


 
nejest   (2004-03-24 18:06) [20]

2 Freeek
попробуй переконвертировать в какой-нибудь открытый векторный фомат, типа Dxf или чего подобного.



Страницы: 1 вся ветка

Форум: "Основная";
Текущий архив: 2004.04.11;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.5 MB
Время: 0.052 c
9-1069953412
Stilgar
2003-11-27 20:16
2004.04.11
Дайте пару советов новичку.


14-1081845051
LaidBack
2004-04-13 12:30
2004.04.11
Немножко расслабился :)


1-1082763405
/\_A_M_E_P
2004-04-24 03:36
2004.04.11
Как програмно сделать главное окно програмы невидимым?


8-1070212580
Toni
2003-11-30 20:16
2004.04.11
Анимация спрайтов в DelphiX


1-1082457212
Паша5
2004-04-20 14:33
2004.04.11
Удаление пустых строк в StringGrid





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский