Техническое задание

Техническое задание
Яндекс.Карты 2.0 на GWT
Необходимо реализовать функциональность апи Яндекс.Карт версии 2.0 в виде Java классов
— обёртка Google Web Toolkit (см. gwt-google-maps.jar для примера). Библиотека должна
быть как отдельный продукт, при подключении которого к веб-проекту, написанному на
GWT, достаточно будет только включение скрипта javascript карт Яндекса в html (или его
можно будет вставить в xml — конфигурацию модуля GWT). Название библиотеки seemapgwt-yandex-maps.jar. Основной пакет — ru.seemap.gwt.yandexmaps. Библиотека
необходима для отображения карты и её компонентов на веб-странице.
Требования:
Необходимо реалиозовать обёртку над следующей функциональностью апи:
1. Circle
2. geometry.Circle
3. Map
4. MapEvent
5. MapType
6. Placemark
7. geometry.Point
8. Polygon
9. geometry.Polygon
10. Polyline
11. geometry.LineString
12. behavior.Ruler
13. control.Button
14. control.Group
15. control.ListBox
16. control.ListBoxItem
17. control.ListBoxSeparator
18. control.MapTools
19. control.MiniMap
20. control.RollupButton
21. control.SmallZoomControl
22. control.ToolBar
23. control.ToolBarSeparator
24. control.TrafficControl
25. control.TypeSelector
26. control.ZoomControl
27. geocode
28. geometryEditor.LineString
29. geometryEditor.Point
30. geometryEditor.Polygon
31. map.action.Continuous
32. map.action.Single
33. projection.Cartesian
34. projection.sphericalMercator
35. projection.wgs84Mercator
Каждый класс должен начинаться с Ya. Названия классов должно совпадать с названиями из
google maps api, там где это возможно, например:
Google:
MapWidget map = new MapWidget(LatLng.newInstance(34.2342, 234234.234), 2);
map.addControl(new LargeMapControl());
map.addControl(new HierarchicalMapTypeControl());
map.setScrollWheelZoomEnabled(true);
map.addMapType(MapType.getPhysicalMap());
map.addMapMouseMoveHandler(this);
map.addMapClickHandler(this);
map.addStyleName("map");
map.addMapZoomEndHandler(new MapZoomEndHandler() {
public void onZoomEnd(MapZoomEndEvent e) {
int zoom = e.getNewZoomLevel();
….
}
});
Yandex:
YaMapWidget map = new YaMapWidget(YaLatLng.newInstance(34.2342, 234234.234), 2);
map.addControl(new YaLargeMapControl());
map.addControl(new YaHierarchicalMapTypeControl());
map.setScrollWheelZoomEnabled(true);
map.addMapType(YaMapType.getPhysicalMap());
map.addMapMouseMoveHandler(this);
map.addMapClickHandler(this);
map.addStyleName("map");
map.addMapZoomEndHandler(new YaMapZoomEndHandler() {
public void onZoomEnd(YaMapZoomEndEvent e) {
int zoom = e.getNewZoomLevel();
….
}
});
Исходные данные — АПИ Яндекс.Карт 2.0
http://api.yandex.ru/maps/doc/jsapi/2.x/ref/concepts/About.xml
Выходные данные:
1. библиотека gwt-yandex-maps.jar
2. исходники этой библиотеки
3. комментарии к коду на русском языке
4. шапка каждого файла должна содержать комментарии следующего содержания:
а) Дата создания: дата / время
б) Сайт: wikiroutes.info
5. работающий пример кода должен содержать следующий примеры:
а) создание карты, изменение размера карты, добавление контроллов, изменение
отображаемой карты на спутник, карта, гибрид, народная, и др.; события мыши,
двойной клик, одинарный, клик правой кнопкой мыши и др.
б) добавление на карту маркера, кастомизированного маркера (с другой иконкой).
Возможность перемещаения маркера, событие по клику, всплывающее
кастомизированное окно по клику с текстом.
в) геопоиск по названию — получение координаты (+ народная карта)
г) геопоиск по координате — получение адреса (+ народная карта)
д) добавление линий, кружков, точек на карту.