Автор темы
Codeby Academy
Практика и мастерство
От основ до продвинутого — программы для практиков Codeby.
К курсу →
- Статус
- Закрыто для дальнейших ответов.
Автор темы
Ну во-первых порежь всю карту на большие картинки (просто боюись, что карта целиком будет слишком большой) с перекрытием, т.е. чтобы один и тот же участок входил в две и более картинок (ну вообщем когда дойдешь до второй части поймешь как надо) 
Во-вторых тебе нужно будет создать карту в БД... т.е. в БД занести улицы и дома с координатами на этих картинках.
Во-вторых тебе нужно будет создать карту в БД... т.е. в БД занести улицы и дома с координатами на этих картинках.
Для: Серёга
а как это реализовать во флеше?Подскажи пожалуйста.
Просто дело в чем,мне на лето задали реализовать какой-нибудь проект.Я его придумал,и по первому времени думал он легкий и не уделял ему время,а потом сообразил,что ни фига он не легкий,а как делать не знаю.А к концу сентяюря он уже должен будет быть готов.Вот такое у меня горе,и чего делать не представляю просто.
а как это реализовать во флеше?Подскажи пожалуйста.
Просто дело в чем,мне на лето задали реализовать какой-нибудь проект.Я его придумал,и по первому времени думал он легкий и не уделял ему время,а потом сообразил,что ни фига он не легкий,а как делать не знаю.А к концу сентяюря он уже должен будет быть готов.Вот такое у меня горе,и чего делать не представляю просто.
не надо на флеше - геморно будет
вон с разрезанием хорошо подсказали
если не понятно, что тот чел имел ввиду, то лучше придумать другой проект пока не поздно...
вон с разрезанием хорошо подсказали
если не понятно, что тот чел имел ввиду, то лучше придумать другой проект пока не поздно...
Разрезай карту и при поиске выдавай правильный участок с уже обведенным куском, либо создай малые варианты карты с уже обведенными участками, и при поиске накладывай на карту.
Разрезай карту и при поиске выдавай правильный участок с уже обведенным куском, либо создай малые варианты карты с уже обведенными участками, и при поиске накладывай на карту.
Тебя можно по разному понять... Вообщем не нужно резать все это на маленькие картинки или обводить участки и т.д. Имхо, правильней будет разрезать эту карту на большие картинки (как можно больше). Далее в базу занести координаты каждого из обьектов (улица, дом, остановка)... Причем кол-во коорданит скорее всего должно описывать многоугольник.
Допустим юзер хочет найти улицу, ты лезешь в БД, достаешь оттуда координаты этой улицы, вычисляешь на какой большой картинки твоя улица находится полностью. Пока все просто... Далее пхп функциями вырезаешь прямоуольник нужных тебе размеров, содержащий твою улицу и создаешь картинку с нужным тебе маштабированием.
Для: j_man
Да, согласен. Но момент с вырезкой многоугольника мне кажется несколько скользким. Мне кажется проще это сразу создать карту (картину) с обводками. И по запросу скрипта доставать нужные куски карты. Например там улица Васи Пупкина 23, в БД прописано, что нужно заменить 4 и 5 участок (допустим, всего 9) на новые заменяем эти участки и получаем нормальную карту. Вроде так и делается вообще.
Надеюсь я ясно выразился...
Утро какое-то тяжелое
Да, согласен. Но момент с вырезкой многоугольника мне кажется несколько скользким. Мне кажется проще это сразу создать карту (картину) с обводками. И по запросу скрипта доставать нужные куски карты. Например там улица Васи Пупкина 23, в БД прописано, что нужно заменить 4 и 5 участок (допустим, всего 9) на новые заменяем эти участки и получаем нормальную карту. Вроде так и делается вообще.
Надеюсь я ясно выразился...
Но момент с вырезкой многоугольника мне кажется несколько скользким
Совершенно нескользкий )). Такой подход имеет некоторые плюсы перед тем что предлагаешь ты (бесконечную маштабируемость, до уровня разрешения всей карты)
Но с тобой сложно не соглаиться... Ты действительно привел более легкий подход (думаю на гугле также сделано, судя по тому как оно работает ). Так действительно проще создать карту в БД. Но теряется качество карты (немного), т.е. двигаться можно будет только по квадратам (идеальный вариант, когда один квадрат совпадает в одним пикселом, но этой уже мой первый вариант, и моя реализации больше подходит)...
Вообще я бы советовал делать так как Gisma описал... Если нужна помощь могу даже помочь.
Для: j_manВообще я бы советовал делать так как Gisma описал... Если нужна помощь могу даже помочь.
Не мог бы ты расписать все по пунктам,как все это сделать.Потому что я ламо и мало что понимаю.Мне нужно с нуля.Буду очень сильно тебе благодарен.
Для: j_man
Не мог бы ты расписать все по пунктам,как все это сделать.Потому что я ламо и мало что понимаю.Мне нужно с нуля.Буду очень сильно тебе благодарен.![]()
Итак:
1. Находишь карту города в виде одной большой картинки (уж не знаю где ее взять, можно в принципе склеить из кусков). Можно взять тот же СитиИнфо и наделать скриншотов одного района а потом их склеить в одну картинку.
2. Далее разрезаешь эту большую картинку на квадратные картинки (ну или снала размечаешь). Ну и как-нибудь для себя их пронумеруй и сохранять их должен с соответствующими именами. Например обычным образом:
11 12 13 14 ...
21 22 23 24 ...
31 32 33 34 ...
..................... (тут 12 картинок пронумеровано)
3. Создаешь в базе таблицу вида:
id - int(11) - уникальный идентификатор обьекта
name - text - название обьекта. Например: "пр. Ф.Скорины", "пр. Ф.Скорины, 4", "резиденция"
type - enum(street, bulding, administrative building, office ....) - ну вообщем понятно
startXY - varchar - наименование левого верхнего квадрата области
finishXY - varchar - наименованиеправого ниженго квадрата области
И заполняешь эту базу. Визуально определяешь какую область занимает твой обьект, т.е. если дом стоит на пересечении квадратов 22 и 23, то для него startXY = 22 и finishXY = 23. Если улица протянулась от 11 до 24, то так в базе и запишешь
4. Базу заполнил.... Теперь нужно написать алгоритм генерации нужной картинки и вывода ее пользователю по запросу. Допустим он просто ищет улицу, ввел ее название ты простым запросом поискал обьект с таким название и соответствующим типом у себя в базе. Если нашел, то уже знаешь какие картинки тебе нужно выдать пользователю (ну и порядок их ты тое знаешь). Ах да, забыл... экран то не резиновый, весь проспект Ф.Скорины не покажешь в оригинальном качестве. Ну для этого придуманы функции работы с изображениями. Но тут вcе просто, когда дойдешь до этого момента, позвони мне, я расскажу, как это маштабирование сделать и ты справишься за пару часиков (каков бы уровень у тебя не был
Конечно же это всего лишь макет всего процесса. Его можно потом улучшить, но для начала не мешало бы реализовать вот такой вот начальный вариант.
-----------------------------------------------
Главное не сложность поставленной задачи, а энтузиазм, с которым к ней нужно подойти.
3. Создаешь в базе таблицу вида:
id - int(11) - уникальный идентификатор обьекта
name - text - название обьекта. Например: "пр. Ф.Скорины", "пр. Ф.Скорины, 4", "резиденция"
type - enum(street, bulding, administrative building, office ....) - ну вообщем понятно
startXY - varchar - наименование левого верхнего квадрата области
finishXY - varchar - наименованиеправого ниженго квадрата области
И заполняешь эту базу. Визуально определяешь какую область занимает твой обьект, т.е. если дом стоит на пересечении квадратов 22 и 23, то для него startXY = 22 и startXY = 23. Если улица протянулась от 11 до 24, то так в базе и запишешь.
Это как делать,подскажи пожалуйста...
Для: neo2006
Если ты собираешься MySQL использовать:
http://dev.mysql.com/doc/#manual
http://phpclub.ru/mysql/doc/
Если PostgreSQL:
http://www.postgresql.org/docs/
http://phpclub.ru/postgresql/doc/
Документацию по остальным серверам баз данных можешь сам найти (google.com).
Осталось определиться выбрать что-нибудь одно.
Если ты собираешься MySQL использовать:
http://dev.mysql.com/doc/#manual
http://phpclub.ru/mysql/doc/
Если PostgreSQL:
http://www.postgresql.org/docs/
http://phpclub.ru/postgresql/doc/
Документацию по остальным серверам баз данных можешь сам найти (google.com).
Осталось определиться выбрать что-нибудь одно.
- Статус
- Закрыто для дальнейших ответов.
Ещё по теме
4
Поделиться: