2009-12-03 3 views
2

Я абсолютно новичок в Google Map/Yahoo Map. Я хотел бы знать, можно ли технически попросить показать любой город в любой стране DYNAMICALLY (я имею в виду прохождение параметров), а затем показать несколько фотографий НА карте рядом с городом?Возможно ли настроить Google/Yahoo Map?

Спасибо.

ответ

5

Там есть множество способов, которыми Вы могли бы добиться этого, некоторые красивее, чем другие.

  1. Вы можете использовать GInfoWindow для отображения всплывающего окна с изображениями в нем в любом месте.
  2. Вы можете использовать одну из удобных библиотек, предлагаемых здесь http://code.google.com/p/gmaps-utility-library-dev/, чтобы помочь вам в отображении этих изображений.
  3. Что я хотел бы рекомендовать, однако, использовать http://econym.org.uk/gmap/ewindows.htm, чтобы создать окно, похожее на GInfoWindow, но это стилизованное вами. Просто нарисуйте окно так, чтобы оно просто было наложенным изображением.
  4. Вы можете обманывать с помощью z-index и ручного позиционирования с помощью библиотеки JavaScript, такой как jQuery.

Кроме того, чтобы ответить на вопрос о начале вопроса, вы можете переориентировать карту в любом месте с помощью метода .setCenter() GMap. Документация setCenter(), GInfoWindow и многое другое доступно на http://code.google.com/apis/maps/documentation/reference.html

3

На втором вопросе,

показать некоторые картины над картой около города?

Мне нравится ответ @ andykram, но я реализовал это ранее, используя слой Panoramio, доступный для API Карт. Он может стать немного переполненным, но к нему привыкли люди интерфейса, и потому, что его так просто включить в карту, на этот раз это просто решение для вас.

Просто добавьте следующую функцию инициализации карты.

var myLayer = new GLayer("com.panoramio.all"); 
map.addOverlay(myLayer); 

Насколько динамично показывая любой город в мире в карте Google, решение легко реализовать - нужно геокодирования название города. Это может быть сделано путем запуска функции в событии, например onclick.

function showAddress(address) { 
    if (geocoder) { 
    geocoder.getLatLng(
     address, 
     function(point) { 
     if (point) { 
      map.setCenter(point, 13); 
      var marker = new GMarker(point); 
      map.addOverlay(marker); 
      marker.openInfoWindowHtml(address); 
     } 
     } 
    ); 
    } 
} 

Если вы попали в препятствие, попробуйте этот первый - http://econym.org.uk/gmap/ - возможно, лучший ресурс для API GMaps в Интернете.

+0

Кстати, если вы собираетесь неоднократно показывать один и тот же набор городов, я рекомендую создать в нем XML-файл с именами городов и геокоординированными координатами, а не использовать объект геокодирования в API Карт. –

0

GeoExt - отличная структура, если вы работаете с картами в целом. Вы также можете получить доступ к другим типам карт (OSM, GeoServer).

Смежные вопросы