Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > Flex

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 07.07.2009, 20:55
CblP вне форума Посмотреть профиль Отправить личное сообщение для CblP Посетить домашнюю страницу CblP Найти все сообщения от CblP
  № 1  
Ответить с цитированием
CblP

Регистрация: Aug 2008
Сообщений: 69
Отправить сообщение для CblP с помощью ICQ
По умолчанию Google Map Страны

Всем привет.

Подключил во Флексе Google Map. Нужно закрасить страны.

Нашел пример где с помощью Polygon (многоугольник) человек закрашивает страны.

Код AS3:
var polygon:Polygon = new Polygon([  new LatLng(-61.686667999999997, 17.024441000000138),
    new LatLng(-61.731116999999983, 17.547222000000090),
    new LatLng(0, 0)]);
 
  map1.addOverlay(polygon);
Я бы его передрал под свои нужды, но там контуры стран оч плохо обведены. Порысля еще в инете и нашел дамп БД (MySQL) в котором есть получше обведены страны.

Собственно вопрос - координаты стран. В этом дампе БД координаты стран в таком заманчивом формате:

тип поля GEOMETRY и такое вот в него вписывается инсертом.

GeometryFromText('MULTIPOLYGON(((-61.686667999999997 17.024441000000138 ,-61.738059999999962 16.989718999999980 ,-61.829169999999920 16.996944000000042 ,-61.876113999999973 17.016941000000088 ,-61.880561999999941 17.019721999999945 ,-61.883613999999966 17.023609000000079 ,-61.885833999999988 17.028053000000057 ,-61.887222000000008 17.033054000000106 ,-61.891112999999962 17.094165999999973 ,-61.887222000000008 17.105273999999952 ,-61.884170999999981 17.109721999999920 ,-61.832779000000016 17.163886999999988 ,-61.826392999999996 17.167220999999984 ,-61.794448999999986 17.163330000000087 ,-61.784172000000012 17.158332999999971 ,-61.744170999999938 17.137217999999962 ,-61.674171000000001 17.093609000000072 ,-61.670279999999934 17.090275000000076 ,-61.668892000000028 17.084998999999982 ,-61.666388999999981 17.045830000000080 ,-61.667502999999954 17.040553999999986 ,-61.682502999999997 17.027495999999985 ,-61.686667999999997 17.024441000000138 )),((-61.729171999999949 17.608608000000004 ,-61.731116999999983 17.547222000000090 ,-61.732779999999991 17.541111000000001 ,-61.738891999999964 17.540554000000100 ,-61.751944999999921 17.549442000000056 ,-61.815558999999951 17.583885000000066 ,-61.834723999999994 17.588608000000079 ,-61.839447000000007 17.586665999999980 ,-61.842781000000002 17.582775000000083 ,-61.847503999999958 17.580830000000105 ,-61.853057999999976 17.583054000000061 ,-61.856673999999998 17.592498999999975 ,-61.873894000000007 17.688889000000017 ,-61.875281999999970 17.698607999999979 ,-61.873062000000004 17.703888000000063 ,-61.850280999999939 17.722775000000127 ,-61.845557999999983 17.724998000000028 ,-61.839171999999962 17.724720000000104 ,-61.787223999999924 17.700554000000068 ,-61.783614999999941 17.697220000000073 ,-61.743339999999932 17.653053000000000 ,-61.740279999999984 17.649166000000093 ,-61.738059999999962 17.644722000000115 ,-61.731673999999941 17.624996000000067 ,-61.729171999999949 17.608608000000004 )))',-1)

*GeometryFromText - это какой-то метод MySQL который преобразует строку в казяблики.

и собственно вот такую строку я и не могу понять как в полигон загнать, (если это реально) или же её нужно как-то преобразовать?

В общем может кто-то стыкался с таким вопросом. Буду рад любой помощи.

ЗЫ Ссылочки: это на исходники того примера: http://gvlt.wordpress.com/2008/05/17...aps-flash-api/
Это на дамп базы: http://blog.newsplore.com/wp-content...02/wb_dump.zip
и на статью автора базы там 2 части:
http://blog.newsplore.com/?p=531&cpage=1#comment-252
http://blog.newsplore.com/?p=737

*GeometryFromText - это какой-то метод MySQL который преобразует строку в казяблики.

Старый 07.07.2009, 21:15
wvxvw вне форума Посмотреть профиль Отправить личное сообщение для wvxvw Найти все сообщения от wvxvw
  № 2  
Ответить с цитированием
wvxvw
Modus ponens
 
Аватар для wvxvw

модератор форума
Регистрация: Jul 2006
Адрес: #1=(list #1#)
Сообщений: 8,049
Записей в блоге: 38
А контур какой страны из этого должен получится?
__________________
Hell is the possibility of sanity

Старый 07.07.2009, 21:45
CblP вне форума Посмотреть профиль Отправить личное сообщение для CblP Посетить домашнюю страницу CblP Найти все сообщения от CblP
  № 3  
Ответить с цитированием
CblP

Регистрация: Aug 2008
Сообщений: 69
Отправить сообщение для CblP с помощью ICQ
Если кратко, то как заставить гуглмап хавать MULTIPOLYGON???

wvxvw, там в БД контуры всех стран, хочу сделать выпадающее список в котором список всех стран, выбираешь страну из списка - она подсвечивается.

Старый 07.07.2009, 22:13
wvxvw вне форума Посмотреть профиль Отправить личное сообщение для wvxvw Найти все сообщения от wvxvw
  № 4  
Ответить с цитированием
wvxvw
Modus ponens
 
Аватар для wvxvw

модератор форума
Регистрация: Jul 2006
Адрес: #1=(list #1#)
Сообщений: 8,049
Записей в блоге: 38
Ну я так понимаю, что LatLng - это что-то вроде Point, строка из эскуеля - тоже состоит из пар, которые вполне похожи на точки - просто попробуйте сложить их в массив и отрисовать так, как если бы первая цифра была координатой по Х, а вторая - по У - и посмотрите, что получится.
__________________
Hell is the possibility of sanity

Старый 07.07.2009, 23:01
aksios вне форума Посмотреть профиль Отправить личное сообщение для aksios Найти все сообщения от aksios
  № 5  
Ответить с цитированием
aksios
loading 50%
 
Аватар для aksios

Регистрация: Jun 2005
Адрес: I am where I should be
Сообщений: 3,567
Отправить сообщение для aksios с помощью ICQ
Сыр, если внимательно почитать приведенную статью там линки все объясняют. причем, по русски. Может я не понял, в чем у Вас затык, но эти пары - широта и долгота для точек.

Старый 08.07.2009, 14:01
CblP вне форума Посмотреть профиль Отправить личное сообщение для CblP Посетить домашнюю страницу CblP Найти все сообщения от CblP
  № 6  
Ответить с цитированием
CblP

Регистрация: Aug 2008
Сообщений: 69
Отправить сообщение для CblP с помощью ICQ
MULTIPOLYGON - это набор полигонов, например когда страна состоит из нескольких островов, то её контур обводится несколькими полигонами.

Эти пары (-61.686667999999997 17.024441000000138 ,....), это и есть точки аля долгота и ширина.

aksios, Перечитал статью и понял что нужно писать парсер, (потому как автор статьи написал парсер который ему АS3 код сгенерил), потом кодировать точки, потом распихивать по 2-м таблицам БД.
wvxvw, да ты прав. Но Гуглмап кушает еще и закодированные точки. http://code.google.com/intl/ru/apis/...algorithm.html
т.е. контур - это же ломаная линия, её можно закодировать. И получается что каждый полигон можно закодировать в строку.
Из линки
Точки: (38.5, -120.2), (40.7, -120.95), (43.252, -126.453)
Закодированная ломаная линия: _p~iF~ps|U_ulLnnqC_mqNvxq`@

Потом эти закодированные линии заганяются в гугл мап примерно так:
Код AS3:
			var polygons : Array = [];
			polygons.push(new Feature(Polygon.fromEncoded([new EncodedPolylineData('wa|fBrdowJexNndf@{iJ{bQ`cZs`T',32,'BAAB',4),new EncodedPolylineData('wdnjBhnwwJt~CfeWerV`|BnrQib[',32,'BAAB',4)]),{pop2005: 83039, area: 44 }));
map.addOverlay(polygons[i].shape);
- это из того исходника.

Зачем мне это кодировать? Получается что у меня Будет таблица Страны, и таблица координаты_стран. в таблице координаты стран будут вот эти закодированные полигоны. Просто если точки не закодировать то кол-во записей в таблице Координаты стран оч будет большим и при выборках все будет глючить.

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

Старый 08.07.2009, 14:20
wvxvw вне форума Посмотреть профиль Отправить личное сообщение для wvxvw Найти все сообщения от wvxvw
  № 7  
Ответить с цитированием
wvxvw
Modus ponens
 
Аватар для wvxvw

модератор форума
Регистрация: Jul 2006
Адрес: #1=(list #1#)
Сообщений: 8,049
Записей в блоге: 38
С чего бы это глючить? Стран в мире совсем не так уж и много что-то около 200.
Как-то от меня смысл кодирования ускользает... а зачем, если для флеша информацию не обязательно передавать в строковом формате?
__________________
Hell is the possibility of sanity

Старый 08.07.2009, 14:32
CblP вне форума Посмотреть профиль Отправить личное сообщение для CblP Посетить домашнюю страницу CblP Найти все сообщения от CblP
  № 8  
Ответить с цитированием
CblP

Регистрация: Aug 2008
Сообщений: 69
Отправить сообщение для CblP с помощью ICQ
Например для Algeria 1240 точек. Т.е. это будет выборка 1240 записей с БД. Это только для Алжира.

Старый 08.07.2009, 14:57
aksios вне форума Посмотреть профиль Отправить личное сообщение для aksios Найти все сообщения от aksios
  № 9  
Ответить с цитированием
aksios
loading 50%
 
Аватар для aksios

Регистрация: Jun 2005
Адрес: I am where I should be
Сообщений: 3,567
Отправить сообщение для aksios с помощью ICQ
Сыр, если Вам нужны только контуры стран, то этот способ решения как бы стрельба из пушки по воробьям. Найдите векторную картинку.
Если актуально использовать карту гугла, так есть тот же КМЛ Парсер.

Старый 08.07.2009, 15:08
CblP вне форума Посмотреть профиль Отправить личное сообщение для CblP Посетить домашнюю страницу CblP Найти все сообщения от CblP
  № 10  
Ответить с цитированием
CblP

Регистрация: Aug 2008
Сообщений: 69
Отправить сообщение для CblP с помощью ICQ
aksios, спасибо! сей час посмотрю

Создать новую тему Ответ Часовой пояс GMT +4, время: 10:05.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 10:05.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.