StreetView Yer Paylaşımlı OpenLayers


9

Benim OpenLayers web uygulamasına StreetView işlevselliği eklemeye çalışıyorum ve haritanın kendisine StreetView kullanılabilirliğini gösteren yer paylaşımını eklemek istiyorum. Burada başarılı bir şekilde yapıldığını bir örnek gördüm , ama kendi çözümümde çalışmak için kodu alamıyorum. Özellikle:

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

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

hatayla sonuçlanır:

layer.mapObject is null

Ne yaptığımı kimse biliyor mu, eğer öyleyse, bunu nasıl düzeltebilirim?

Yanıtlar:


4

Streetview özellikli Openlayers

GeoExt ux uzantısı gerektirir

tüm kod kullanılabilir - böylece neyi kaçırdığınızı görebilirsiniz

(mevcut haritanıza canlı bir bağlantı gönderebiliyorsanız kullanıcılar sizin için hata ayıklayabilir.)

resim açıklamasını buraya girin

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


2
+1 - bu demo çalışıyor. Aynı yazar tarafından da, ancak daha yeni.
geographika

GeoExt kullanmadan OpenLayers'ta StreetView Overlay Layer'ı kullanmanın başka bir yolunu biliyor musunuz?
CatchingMonkey

Yalnızca Google Maps v2 (kullanımdan kaldırıldı) fuzzytolerance.info/code/… API Anahtarı gerekir.
Mapperz

GeoAdmin artık Sokak Görünümü sunmuyor gibi görünüyor, bulabildiğim ilgili örnek kapanış : gxp.opengeo.org/master/examples/google-streetview-panel.html (OpenLayers + GeoExt)
kryger

2

Google katmanlarını kullanmak ve lisanslama gereksinimlerini karşılamak için Google katmanlarına Google API üzerinden erişmeniz gerekir. OpenLayers haritasına bir Google katmanı eklediğinizde OpenLayers Google API'sını yükler.

layer.mapObject(Karşıt olarak layer.maphangi OL harita nesnesi olan) size Google Haritasının bir başvuru vermelidir. Bu olduğu gibi nullbir şey Google API yükleme gitti yanlış vardır. FireBug'un doğru yüklendiğini kontrol edebilirsiniz .

İşaret ettiğiniz örnek sürüm 3 yerine eski Google 2 API'sını kullanıyor olabilir. Artık bir API anahtarına ihtiyacınız yok ve aşağıdakileri kullanarak Google API'sına ekleyebilirsiniz:

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

Size yardımcı olabilecek Google v3 API katmanları için birim testlerine göz atın .

StreetView'ın tarayıcıda Flash'a da ihtiyacı olduğunu unutmayın.


Merhaba, yardımın için teşekkürler. Şu anda masamda değilim, bu yüzden önerilerinizi test edemeyeceğim, ancak işte bildiğim şu: Kesinlikle Google Maps API v3'ü yüklüyorum. Daha önce Web Uygulamalarında StreetView uyguladım, ancak bu sefer haritada da yer paylaşımı almak istiyorum. Ben bir tarayıcı şey olup olmadığını merak ediyorum. Bağlantı verdiğim web sitesi IE'de iyi çalışıyor (8) ama Firefox'ta değil ... herhangi bir fikir?
CatchingMonkey

Demo FF6, IE8 veya IE9'da benim için çalışmıyor. Sadece bir harita ya da sokak görünümü gösteriyor gibi görünüyor ..
geographika

Hmmm, web sitesi benim IE8 burada çalışmak gibi görünüyor .... şimdi de OpenLayers kullanıcı listesine danışmak olacak!
CatchingMonkey

1

Layer.mapObject öğesinin null olmasının nedeni, mapObject özelliğinin, katmanın haritaya eklendikten sonra oluşturulmasıdır. Bunu dene:

var layer = new OpenLayers.Layer.Google("Google Street", {sphericalMercator: true});
map.addLayer(layer);
layer.mapObject.addOverlay(new GStreetviewOverlay());
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.