heron-mc / heron-mc

Heron Mapping Client (formerly geoext-viewer on Google Code)
http://heron-mc.org
GNU General Public License v3.0
31 stars 28 forks source link

Streetview semi-integration #233

Open GoogleCodeExporter opened 9 years ago

GoogleCodeExporter commented 9 years ago
I want to add an icon to the toolbar that integrates with Google Streetview 
*without* requiring the Google Maps API (and thus not requiring an expensive 
license etc).
This may be of use to others in the community so am creating it as an issue and 
it can be added to Heron if desired (otherwise, feel free to close and I'll go 
onto the mailing-list).

Function: Click the button, click on the map, Streetview opens in a new window.
    Should be projection agnostic (tested with 27700 only).

Attached file contains current file plus icon and css for icon. Just add it 
after all the heron config files and it should work.

----
It works, but there are some problems that are beyond my feeble GeoExt skills:

1) The Heron/GeoExt integration is dismal at best. Whenever I activate/deactive 
the icon I get a GeoExt error about this.control not being defined (even though 
it should be).

2) I want it to deactivate after the click. No idea how to do this.

3) There's probably a better way to get a click location in GeoExt than that 
monstrous OpenLayers code.

The bit I'm happy with (the actually important bit) is the part that's 
commented as "important part". It'd be great if someone could take the 
"important bit" and stick it into Heron properly.

Limitations:
  - Because its not using the API, it's not as smart about finding images (the API has a function).
  - I investigated but it's impossible to make the link open as a full-screen StreetView map.

Unrelated future development potential:
  - If you do have the API, in theory you can have direct integration of StreetView as a Ext panel - http://trac.geoext.org/wiki/ux/StreetViewPanel

Original issue reported on code.google.com by jonathan...@warwickshire.gov.uk on 13 Jun 2013 at 12:39

Attachments:

GoogleCodeExporter commented 9 years ago

Original comment by jus...@gmail.com on 18 Jun 2013 at 4:03

GoogleCodeExporter commented 9 years ago
https://github.com/camptocamp/cgxp/tree/master/openlayers.addins/GoogleEarthView
 may be something to look at...

Original comment by jus...@gmail.com on 4 Jul 2013 at 9:45

GoogleCodeExporter commented 9 years ago
Or this
https://github.com/camptocamp/cgxp/tree/master/geoext.ux/ux/StreetViewPanel

Original comment by jus...@gmail.com on 4 Jul 2013 at 9:47

GoogleCodeExporter commented 9 years ago
> https://github.com/camptocamp/cgxp/tree/master/geoext.ux/ux/StreetViewPanel
This falls under the same thing as my "future development potential". It 
requires a google Maps key which we don't have/want (we're trying to cut costs 
;-) ). Also for whatever reason they don't seem to have an example of it on 
their website, despite it being in git:
http://dev.geoext.org/geoext/extensions/geoext.ux/ux/

> 
https://github.com/camptocamp/cgxp/tree/master/openlayers.addins/GoogleEarthView
This is the Google Earth browser-plugin version; not sure if it requires a 
license but we don't have that plugin installed corporately. OpenGeo's 
GeoExplorer features an example of it - 
http://suite.opengeo.org/geoexplorer/composer/
I also used it as part of my Masters Dissertation.

My problem isn't the core logic, that's done. It's integrating it with Heron.

Either of those two may be desired by other users, but they're outside of my 
remit and I don't have the facilities available to implement them anyway (lack 
of plugin and key).

Original comment by jonathan...@warwickshire.gov.uk on 4 Jul 2013 at 10:06

GoogleCodeExporter commented 9 years ago
Attention http://trac.geoext.org/wiki/ux/StreetViewPanel isn't compatible with 
V3 API. Better use GXP as I wrote in mailing list 
https://groups.google.com/forum/#!topic/geoext-viewer-devel/foUlL5i_5rI

Original comment by martin.k...@gmail.com on 4 Jul 2013 at 3:15

GoogleCodeExporter commented 9 years ago

Original comment by jus...@gmail.com on 8 Sep 2013 at 8:02

GoogleCodeExporter commented 9 years ago
And another example:
https://github.com/teamgeo/ZaanAtlas/blob/master/app/static/script/app/plugins/S
treetview.js
from
http://geo.zaanstad.nl/zaanatlas/composer (GeoExplorer app).

Original comment by jus...@gmail.com on 25 Nov 2013 at 3:58

GoogleCodeExporter commented 9 years ago
Moving to 1.0.1

Original comment by jus...@gmail.com on 22 Dec 2013 at 3:53

GoogleCodeExporter commented 9 years ago
I did some further investigation: best to base on GXP version: is compatible 
with V3 and doesn't require an Google API key. If the interaction like in this 
example: 
http://gxp.opengeo.org/master/examples/google-streetview-panel.html is ok, than 
we can take that as starting point for integration in Heron. My suggestion is a 
toggle button in the map toolbar to enable/disable StreetView popups when 
clicking on map.

Original comment by jus...@gmail.com on 23 Feb 2015 at 9:15

GoogleCodeExporter commented 9 years ago
The use of a popup to provide the StreetView is definitely the best way to 
establish the relationship between the map location and the view. I think this 
approach works particularly well when a simple directional icon is added to the 
map, showing the direction from which the StreetView is taken (as in this QGIS 
plugin: go2streetview example).

https://geogear.wordpress.com/2014/11/04/go2streetview-v5-0/

Original comment by paullarc...@warwickshire.gov.uk on 24 Feb 2015 at 3:16

GoogleCodeExporter commented 9 years ago
Yes, I see. That would be powerful.

Following StreetView location and direction (POV) on the map will require extra 
effort off course. We need to observe "StreetViewEvents", move a rotating 
"Sprite" on the map etc. Also the interaction with the popup will need some 
care: as a popup may interfere/cover the Sprite when moving in StreetView.

Shall we split this up: 

- first a basic version as in 
http://gxp.opengeo.org/master/examples/google-streetview-panel.html with 
additional enable/disable button in the Toolbar.  

-then a "map-follows-streetview" version

Can give estimates here or offline.

Note for future: https://www.mapillary.com a friendly Open Data alternative...

Original comment by jus...@gmail.com on 24 Feb 2015 at 4:31

justb4 commented 8 years ago

Integrated the GXP GoogleStreetViewPanel and updated the example. Commit upcoming...

justb4 commented 8 years ago

One drawback of this implementation is that one always needs to include the Google Maps API .js within the main Heron application, even if one never activates StreetView from the Toolbar. One other implementation could be to have the popup as an iframe in an ExtJS Panel, such that only when StreetView is activated, the Gmaps API (in the iframe) is loaded. See e.g. https://www.sencha.com/forum/showthread.php?266343-URL-in-panel-or-iframe.