Firstly, I'd like to thank you for the enthusiasm with which you've
researched and used our APIs; the Geo APIs team are always glad to see
developers getting as much out of the Geo APIs as possible.
I want to preface by saying that the Earth API as well as the
documentation, tools, and samples are under very active development.
Many of the features you are alluding to may very well be implemented
in the future. However, Google does not release specific plans or
dates regarding new features and bug fixes. We do our best to provide
general guidance as well as ideas for temporary solutions. Our team
also requests that developers post their specific Feature Requests at
http://groups.google.com/group/kml-support/web/earth-api-feature-request-page,
as we check this page regularly to get a picture of which features are
most important for our product roadmap.
Here are some of my thoughts on your specific concerns:
...
> documented outside of Google's labs, and since the Map api, at this
> time, does not include Street View, the code I am writing tests both
> Javascript and Actionscript via your Flash api where it exists, or via
> ExternalInterface, where it does not.]
I'm unsure of what you mean by the Maps API not including Street View--
can you be more specific? The JavaScript Maps API has substantial
demos on Street View integration (see previous links).
> Since there is more information that I can uncover in the Map groups,
> I have worked more on that aspect for the last 24 hours. I am at the
> point where I think I can say that there appears to be no generally
> valid way to take the results from a geocode query based on a street
> address, and computationally determine the correct yaw for a LookAt
> that address from the 'nearest' Street View.
Geocode queries are as precise as our data allows. It goes without
mention that we are perpetually upgrading our quality of results. As
for a yaw formula, the sample I linked before (
http://gmaps-
samples.googlecode.com/svn/trunk/streetview/angletowardsbuilding.html)
contains a rough formula; you can also try one found at
http://mathforum.org/library/drmath/view/55417.html:
tc1=mod(atan2(sin(lon2-lon1)*cos(lat2),
cos(lat1)*sin(lat2)-sin(lat1)*cos(lat2)*cos(lon2-lon1)),
2*pi)
lon1 = longitude of point A
lat1 = latitude of point A
lon2 = longitude of point B
lat2 = latitude of point B
tc1 = direction of point B from point A (angle east of north)
If I have misinterpreted your question here, please elaborate.
...
> the effort on the animated visual effects of moving from one 'scene'
> to another 'scene'. What is your recommendation in terms of the
> direction of the Map and Earth aps? I think many folks could benefit
> from a small planning matrix.
>
> The nice thing about the current Earth integration of a Street View is
> that the person creating the guided tour actually solves the problem
> -- very precisely. If that snapshot set of attributes were correctly
> captured, we would have what we need at playback time. It is actually
> far superior to use the Earth UI to capture the complete orientation
> -- including, where helpful, both zoom and tilt. The demos from the
> Map api -- coming from a 2D world -- don't even address those two
> additional attributes.
>
> Sitting way outside your labs [though I can ride my bike down the
> Guadalupe bike trail to get to your towers from Campbell], it sure
> seems like the easiest, quickest, best fix would be to use the Earth
> part of your toolkit to fix the missing KML data model.
As you probably know, Street View doesn't currently do much in the
realm of visual effects; that doesn't mean there won't be innovation
in that area. The Earth API does, however, provide for such transition
effects via SetAbstractView's smooth flying behavior. However, the
Earth API doesn't yet fully support KML's PhotoOverlay element, which
is how Google Earth implements Street View. We are working on this as
well as full KML support.
As I mentioned before, I can only provide some guidance, not a
specific plan for feature releases. I would recommend that developers
use both APIs as needed to achieve the desired effect. It is up to the
application developer to control the user experience. I would also
recommend practicing design flexibility since the Earth API is growing
quickly.
With regards to KML, it is now an open standard (see
http://www.opengeospatial.org/standards/kml). Although Google is a key
player in the KML community, the features and changes that go into the
KML spec are, in the end, up to the OGC.
> In the terminology of the "Google Earth COM API, I guess it boils down
> to whether or not Google is planning to provide the functionality of
> the ITourControllerGE in its Javascript [and then Actionscript] api so
> that those of us with no COM framework skills or tools will be able to
> exercise the full potential of Google Earth.
>
> I am not expecting a commitment; I am just hoping for guidance. As
> you succinctly summarized, recreating all of that would be a
> considerable undertaking. I am less concerned about the amount of
> effort than the fact that it seems so unnecessary. You guys --
> collectively -- are the keepers of the keys to the kingdom. With the
> right, slight tweeking of the KML of a 'snapshot', with the right
> loading of an 'eternal KML' database into the plug-in, and with the
> right animation primitives in the api, it would be very possible to
> create Rich Internet Applications that include the behavior of the
> Street View as multiple 'stops along the way' to a geodesy tour of
> some part of the planet. Can we get any sort of "Statement of
> Direction" from which we can try to make good decisions concerning
> which toolkits from which vendors we should bet on?
These are great ideas; again, I'd suggest posting to the Feature
Requests page.
We also encourage the development of third party libraries and
samples, such as those that we've seen written for the Maps API. We
often link to such efforts in our groups as well as in the Geo
Developers Blog at
http://googlegeodevelopers.blogspot.com/. If you
have specific ideas about online tour implementations and want to
initiate an external developer effort, I think others would be happy
to participate.
Thanks again for a great discussion and I hope that it leads to
something great. When it does, do post a link!
- Roman