Hallo,
ich arbeite gerade an einem Projekt, bei dem eine Karte mit Google Maps dargestellt werden soll. Mithilfe der Doku und den Samples habe ichs schon geschafft, mein eigenes Kartenmaterial zu erstellen und zu nutzen, sowie Marker einzufügen. Allerdings habe ich noch ein paar "Wünsche" ^^
Also einmal sollen bestimmte Marker nur auf einem Kartentyp angezeigt werden. Ich habe das mit dem Eventhandler "maptypeid_changed" versucht, aber das funktioniert nicht. Da bräuchte ich etwas Nachhilfe.
Dann wollte ich noch fragen ob es ohne großen Aufwand ginge, die Marker nur einmal anzuzeigen und nicht in x-Richtung zu wiederholen, da ich meine Karte auch nicht wiederhole.
Auch würde ich gerne dynamisch Verbindungslinien zwischen zwei Markern erstellen, also eine Methode in der Art verbindungZeichnen(startmarker, zielmarker). Gibts da was oder ginge das nur mit einem Polygon?
Als letztes suche ich noch ein Modul für Swing um diese Karte in eine GUI einzubinden, wichtig wäre, dass dieses Modul eine Schnittstelle hat, damit ich vom Java-Code aus Methoden der Karte aufrufen kann. Gibts sowas?
Als letztes noch mein Code bis jetzt:
ich arbeite gerade an einem Projekt, bei dem eine Karte mit Google Maps dargestellt werden soll. Mithilfe der Doku und den Samples habe ichs schon geschafft, mein eigenes Kartenmaterial zu erstellen und zu nutzen, sowie Marker einzufügen. Allerdings habe ich noch ein paar "Wünsche" ^^
Also einmal sollen bestimmte Marker nur auf einem Kartentyp angezeigt werden. Ich habe das mit dem Eventhandler "maptypeid_changed" versucht, aber das funktioniert nicht. Da bräuchte ich etwas Nachhilfe.
Dann wollte ich noch fragen ob es ohne großen Aufwand ginge, die Marker nur einmal anzuzeigen und nicht in x-Richtung zu wiederholen, da ich meine Karte auch nicht wiederhole.
Auch würde ich gerne dynamisch Verbindungslinien zwischen zwei Markern erstellen, also eine Methode in der Art verbindungZeichnen(startmarker, zielmarker). Gibts da was oder ginge das nur mit einem Polygon?
Als letztes suche ich noch ein Modul für Swing um diese Karte in eine GUI einzubinden, wichtig wäre, dass dieses Modul eine Schnittstelle hat, damit ich vom Java-Code aus Methoden der Karte aufrufen kann. Gibts sowas?
Als letztes noch mein Code bis jetzt:
Code:
<!DOCTYPE html>
<html>
<head>
<title>Routenplaner</title>
<link href="/maps/documentation/javascript/examples/default.css" rel="stylesheet" type="text/css" />
<script type="text/javascript" src="https://maps.googleapis.com/maps/api/js?sensor=false"></script>
<script>
var mapTypes = {};
mapTypes['erdgeschoss'] = {
getTileUrl: function(coord, zoom) {
var bound = Math.pow(2, zoom);
return "map/erdgeschoss" + "/" + zoom + "/" + coord.x + (bound - coord.y - 1) + ".jpg";
},
tileSize: new google.maps.Size(256, 256),
maxZoom: 3,
minZoom: 0,
name: "Erdgeschoss"
};
mapTypes['ersterStock'] = {
getTileUrl: function(coord, zoom) {
var bound = Math.pow(2, zoom);
return "map/ersterstock" + "/" + zoom + "/" + coord.x + (bound - coord.y - 1) + ".jpg";
},
tileSize: new google.maps.Size(256, 256),
maxZoom: 3,
minZoom: 0,
name: "1. Stock"
};
mapTypes['zweiterStock'] = {
getTileUrl: function(coord, zoom) {
var bound = Math.pow(2, zoom);
return "map/zweiterstock" + "/" + zoom + "/" + coord.x + (bound - coord.y - 1) + ".jpg";
},
tileSize: new google.maps.Size(256, 256),
maxZoom: 3,
minZoom: 0,
name: "2. Stock"
};
var map;
var mapTypeIds = [];
function initialize() {
for (var key in mapTypes) {
mapTypeIds.push(key);
}
var mapOptions = {
zoom: 0,
center: new google.maps.LatLng(0, 0),
streetViewControl: false,
mapTypeControlOptions: {
mapTypeIds: mapTypeIds,
style: google.maps.MapTypeControlStyle.DEFAULT
}
};
map = new google.maps.Map(document.getElementById("map_canvas"), mapOptions);
var marker1 = new google.maps.Marker({
position: new google.maps.LatLng(0, 0),
map: map,
title:"Test"
});
var marker2 = new google.maps.Marker({
position: new google.maps.LatLng(0, 100),
map: map,
title:"Test2"
});
google.maps.event.addListener(map, 'maptypeid_changed', function() {
if (map.getMapTypeId() = 'erdgeschoss'){
marker1.setVisible(true);
marker2.setVisible(false);
}
if (map.getMapTypeId() = 'ersterStock'){
marker1.setVisible(false);
marker2.setVisible(true);
}
if (map.getMapTypeId() = 'zweiterStock'){
marker1.setVisible(false);
marker2.setVisible(false);
}
});
for (key in mapTypes) {
map.mapTypes.set(key, new google.maps.ImageMapType(mapTypes[key]));
}
map.setMapTypeId('erdgeschoss');
}
</script>
</head>
<body onload="initialize()">
<div id="map_canvas" style="width: 640px; height: 480px;"></div>
</body>
</html>