Создание интерфейса (на стороне клиента), который ведет себя как карты Google - PullRequest
1 голос
/ 24 декабря 2011

Я пытаюсь создать интерфейс, подобный Google Maps. я хочу показать изображение на экране, и когда я перетаскиваю, я хочу загрузить часть изображения по мере необходимости. Мое изображение бесконечно длинное по горизонтали, но его вертикальная высота составляет фиксированные 200 пикселей.

Серверная сторона готова и отправляет обратно данные изображения по мере необходимости.

У меня вопрос, как реализовать перетаскивание изображения на стороне клиента? Я пытаюсь это с помощью GWT. Я не могу понять, как показать изображение пользователю, а затем позволить ему перетащить его влево / вправо. Я прочитал этот сайт и все вопросы, связанные с Google Maps, но все еще не могу понять, как реализовать часть этого на стороне клиента.

Спасибо

1 Ответ

1 голос
/ 28 декабря 2011

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

Вы вызываете API Google Javascript или его API-интерфейс GWT.

Служба будет предоставлять перетаскиваемую и масштабируемую карту на холст.на дом вашей HTML-страницы.

Вы указываете координаты и особенности фрейма карты.Ваше приложение будет связываться с картографическим сервисом, чтобы узнать, что делает пользователь.Вы не будете напрямую контролировать действия пользователя на холсте карты.Вы должны связаться / запросить с / из картографического сервиса.

http://code.google.com/p/gwt-google-apis/wiki/MapsGettingStarted.

Или вы можете напрямую использовать API JavaScript Maps / Latitude, и вы легко сможете обернуть свою собственную оболочку gwtDiv держит холст карты.Вы будете связываться с картографическим сервисом через API REST, передавая и получая либо json, либо xml.

Убедитесь, что вы не запрашиваете изображение местоположения.

Например, следующий простой html (который я украл с сайта API Maps) представляет перетаскиваемую / масштабируемую карту.Никакой тяжелой работы не требуется.

Заметьте, что div содержит идентификатор map_canvas?Вы должны были бы обернуть это в GWT.Такое размещение canvas на div и оборачивание их в gwt является стандартной практикой даже для локальных утилит для создания изображений и диаграмм, где такие утилиты написаны на javascript.DOM.getElementById должен быть вашим хорошим другом.Просто загромождайте свои элементы root-панели gwt вокруг холста карты.

<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="initial-scale=1.0, user-scalable=no" />
<style type="text/css">
  html { height: 100% }
  body { height: 100%; margin: 0; padding: 0 }
  #map_canvas { height: 100% }
</style>
<script type="text/javascript"
    src="http://maps.googleapis.com/maps/api/js?key=YOUR_API_KEY&sensor=true">
</script>
<script type="text/javascript">
  function initialize() {
    var latlng = new google.maps.LatLng(-34.397, 150.644);
    var myOptions = {
      zoom: 8,
      center: latlng,
      mapTypeId: google.maps.MapTypeId.ROADMAP
    };
    var map = new google.maps.Map(document.getElementById("map_canvas"),
        myOptions);
  }

</script>
</head>
<body onload="initialize()">
  <div id="map_canvas" style="width:100%; height:100%"></div>
</body>
</html>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...