Próbuję dodać funkcjonalność StreetView do mojej aplikacji internetowej OpenLayers i chciałbym dodać nakładkę pokazującą dostępność StreetView do samej mapy. Widziałem przykładem nim robione z powodzeniem tutaj , ale nie mogę uzyskać kod do pracy w moim własnym rozwiązaniem. Konkretnie :
var layer = new OpenLayers.Layer.Google("Google Street", {sphericalMercator: true});
layer.mapObject.addOverlay(new GStreetviewOverlay());
powoduje błąd:
layer.mapObject is null
Czy ktoś ma pojęcie, co robię źle, a jeśli tak, to jak mogę to naprawić?
openlayers-2
google-maps
CatchingMonkey
źródło
źródło
Aby korzystać z warstw Google i spełniać wymagania licencyjne, musisz uzyskać dostęp do warstw Google za pośrednictwem interfejsu API Google. Po dodaniu warstwy Google do mapy OpenLayers OpenLayers ładuje interfejs API Google.
layer.mapObject
( W przeciwieństwie dolayer.map
obiektu mapy OL) powinien zawierać odniesienie do mapy Google. Ponieważnull
coś poszło nie tak podczas ładowania interfejsu API Google. Możesz sprawdzić w FireBug, czy został poprawnie załadowany.Przykład, na który wskazujesz, może używać starszego interfejsu API Google 2 zamiast wersji 3. Nie potrzebujesz już klucza API i możesz dodać interfejs API Google, używając:
Sprawdź testy jednostkowe warstw interfejsu API Google v3, które mogą Ci pomóc.
Pamiętaj, że StreetView potrzebuje także Flasha w przeglądarce.
źródło
Powodem, dla którego warstwa.mapObject jest pusta, jest to, że właściwość mapObject jest tworzona po dodaniu warstwy do mapy. Spróbuj tego:
źródło