Google Maps dans un Browser View
Bonjour,
j'essaye d'intégrer une page contenant google maps dans une view (browser)
voici la page:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45
|
<!DOCTYPE html "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8"/>
<title>Google Maps JavaScript API Example</title>
<script src="http://maps.google.com/maps?file=api&v=2&key=ABQIAAAAjZ8pBvAzVnfGqQHM4FBBpRQ_-f1RzMzZY0pMcJ-g0KVm6I4ZERQ11sD7MTBj8Xsf3kP5W7IGaI3kXQ
&sensor=false"
type="text/javascript"></script>
<script type="text/javascript">
var map;
function initialize() {
if (GBrowserIsCompatible()) {
map = new GMap2(document.getElementById("map_canvas"));
map.setCenter(new GLatLng(37.4419, -122.1419), 13);
// Enable the Earth map type
map.addMapType(G_SATELLITE_3D_MAP);
var mapControl = new GMapTypeControl();
map.addControl(mapControl);
}
}
</script>
</head>
<body onload="initialize()" >
<div id="map_canvas" style="width: 100%; height: 100%"></div>
</body>
</html> |
Ma viewPart ressemble à ca:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66
|
package aircraftTrackingPlugin.views;
import java.beans.PropertyChangeEvent;
import java.beans.PropertyChangeListener;
import org.eclipse.jface.util.LocalSelectionTransfer;
import org.eclipse.swt.SWT;
import org.eclipse.swt.browser.Browser;
import org.eclipse.swt.dnd.DND;
import org.eclipse.swt.dnd.DropTarget;
import org.eclipse.swt.dnd.Transfer;
import org.eclipse.swt.events.ControlEvent;
import org.eclipse.swt.events.ControlListener;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.ui.part.ViewPart;
import aircraftTrackingPlugin.Conf;
import aircraftTrackingPlugin.model.CurrentWatchingAircraftCollection;
public class EarthView extends ViewPart implements PropertyChangeListener{
public static final String ID = "aircrafttrackingapp.views.EarthView";
private Browser browser;
@Override
public void createPartControl(Composite arg0) {
browser = new Browser(arg0, SWT.SCROLL_LOCK);
browser.addControlListener(new ControlListener() {
public void controlResized(ControlEvent e) {
// Use Javascript to set the browser width and height
browser
.execute("document.getElementById('map_canvas').style.width= "
+ (browser.getSize().x - 41) + ";");
browser
.execute("document.getElementById('map_canvas').style.height= "
+ (browser.getSize().y - 41) + ";");
}
public void controlMoved(ControlEvent e) {
}
});
browser.setUrl(Conf.CONFIGURATION_SERVER_URL+"public/earth.html");
//the drop listener
int operations = DND.DROP_COPY| DND.DROP_MOVE;
DropTarget dropTarget = new DropTarget(browser, operations);
dropTarget.setTransfer(new Transfer[] {LocalSelectionTransfer.getTransfer()});
dropTarget.addDropListener(new AircraftDropListener());
CurrentWatchingAircraftCollection.getInstance().addPropertyChangeListener(this);
}
@Override
public void dispose() {
super.dispose();
CurrentWatchingAircraftCollection.getInstance().removePropertyChangeListener(this);
}
@Override
public void setFocus() {
// TODO Auto-generated method stub
}
} |
j'ai 2 comportements bizarres:
Lorsque ma vue se charge (sur une map type plan), la view est vide. Il faut que je la resize pour que la map apparaisse.
Lorsque je passe en mode (Earth) => je clique sur
Plan-Satellite-Mixte-Earth
le plugin ne se lance pas. je me retrouve avec l'image de la terre avec
Le plug-in Google Earth est maintenant installé/ Redemarrez votre navigateur pour le voir en action
Quelqu'un a une idée? Pour info, je colle l'adresse de la page dans firefox, IE ou chrome, et tout fonctionne a merveille.