OpenLayers з накладанням StreetView


9

Я намагаюся додати функцію StreetView до мого веб-додатку OpenLayers, і хотів би додати накладку, що показує доступність StreetView, до самої карти. Я бачив приклад того, як це успішно робиться тут , але я не можу змусити код працювати над власним рішенням. Конкретно:

var layer = new OpenLayers.Layer.Google("Google Street", {sphericalMercator: true});

layer.mapObject.addOverlay(new GStreetviewOverlay());

призводить до помилки:

layer.mapObject is null

Хтось має уявлення про те, що я можу робити не так, і якщо так, то як я можу це виправити?

Відповіді:


4

Відкриті шари з Streetview

вимагає розширення ux GeoExt

весь код доступний - ви зможете побачити, що вам не вистачає

(якщо ви можете опублікувати пряме посилання на вашу поточну карту - користувачі можуть налагодити це за вас.)

введіть тут опис зображення

http://api.geo.admin.ch/main/wsgi/doc/build/api/streetview.html


2
+1 - ця демонстрація працює. Це теж той самий автор, але останнім часом.
geographika

Чи знаєте ви про будь-який інший спосіб використання накладного шару StreetView у OpenLayers без використання GeoExt?
CatchingMonkey

Потрібен лише для Google Maps v2 (застарілий) fuzzytolerance.info/code/… ключ API.
Mapperz

GeoAdmin, здається, більше не пропонує Street View, я можу знайти відповідний приклад: gxp.opengeo.org/master/examples/google-streetview-panel.html (OpenLayers + GeoExt)
kryger

2

Щоб використовувати шари Google та відповідати вимогам ліцензування, ви маєте доступ до шарів Google через API Google. Коли ви додаєте шар Google на карту OpenLayers, OpenLayers завантажує API Google.

layer.mapObject(На відміну від layer.mapякої є відображення об'єкта OL) повинен дати вам посилання на Google Map. Оскільки це nullщось не так, завантажуючи API Google. Ви можете перевірити в FireBug, чи правильно він завантажений.

Приклад, на який ви вказуєте, може використовувати старіший API Google 2, а не версію 3. Вам більше не потрібен ключ API і ви можете додавати його в API Google, використовуючи:

<script src="http://maps.google.com/maps/api/js?sensor=false"></script>

Перегляньте одиничні тести шарів API Google v3, які можуть вам допомогти.

Пам'ятайте, що StreetView також потребує Flash у браузері.


Привіт, дякую за вашу допомогу. Я зараз не за столом, тому не можу перевірити ваші пропозиції, але ось що я знаю: я безумовно завантажую API Карт Google v3. Раніше я вже впроваджував StreetView у веб-додатках, але цього разу шукаю накладення на карту. Мені цікаво, хоч якщо його річ у браузері. Веб-сайт, на який я дав посилання на відмінно працює в IE (8), але не в Firefox ... якісь ідеї?
CatchingMonkey

Демонстрація не працює для мене в FF6, IE8 або IE9. Здається, показує лише карту або вид на вулицю ..
geographika

Гммм, веб-сайт, здається, працює в моєму IE8 тут .... збираюся також ознайомитися зі списком користувачів OpenLayers!
CatchingMonkey

1

Причина, чому слой.mapObject недійсний, полягає в тому, що властивість mapObject створюється після того, як шар додається до карти. Спробуйте це:

var layer = new OpenLayers.Layer.Google("Google Street", {sphericalMercator: true});
map.addLayer(layer);
layer.mapObject.addOverlay(new GStreetviewOverlay());
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.