Hackerboard Wiki HaboBlog
Hackerboard bei Facebook Hackerboard bei Google+ Hackerboard bei Twitter

[HaBo]

 
(Web-) Design und webbasierte Sprachen Tipps & Tricks, Designabgleich, HTML & Javascript, Flash, ASP, PHP, Perl/CGI...

Landkartenstatistik

Diskussion: Landkartenstatistik im Forum (Web-) Design und webbasierte Sprachen, in der Kategorie Web, Network & Multimedia Palace; Anzeige Hallo, ich bin neu hier und habe gesehen, dass man sich hier in eine Landkartenstatistik eintragen kann. Das hat ...

Antwort
Alt 04.08.11, 13:47   #1 (permalink)
 
Registriert seit: 04.08.11
Tiberius Leistung: Facit NTK
Likes: 0
Standard Landkartenstatistik

Anzeige

Hallo,

ich bin neu hier und habe gesehen, dass man sich hier in eine Landkartenstatistik eintragen kann. Das hat mir gut gefallen und nun frage ich mich wie kann ich sowas selbst in eine Homepage einbauen?

Ich hab schonmal etwas gegoogelt, jedoch nichts passendes gefunden was mir weiter hilft.

Gruß

Tiberius

Tiberius ist offline   Mit Zitat antworten
Alt 04.08.11, 14:52   #2 (permalink)
 
Benutzerbild von she3p
 
Registriert seit: 07.05.07
she3p Leistung: 8086
Likes: 19
Standard

Obwohl ich persönlich nie damit gearbeitet habe, würde ich dir einen Blick in die Google Maps API Referenz werfen, denn ich denke, auf diese Weise würde sich ein solches Problem gut lösen lassen.
__________________
she3p ist offline   Mit Zitat antworten
   
HaBOT
 
- Anzeige -

Werbung ist gerade online    
Alt 04.08.11, 15:24   #3 (permalink)
Themenstarter
 
Registriert seit: 04.08.11
Tiberius Leistung: Facit NTK
Likes: 0
Standard

Bei Google Maps war ich schon, habe da bereits davon einen passenden Ausschnitt als Lageplan auf der Homepage. Wußte nicht dass es mit solchen Fähnchen auch geht.

Hatt gedacht es gibt da ein Snippet oder einen anderen Dienst den man dafür nutzen kann.

Vielleicht hat ja noch einer eine Idee.


Gruß

Tiberius
Tiberius ist offline   Mit Zitat antworten
Alt 04.08.11, 15:46   #4 (permalink)
 
Benutzerbild von she3p
 
Registriert seit: 07.05.07
she3p Leistung: 8086
Likes: 19
Standard

Zitat:
Zitat von Tiberius Beitrag anzeigen
Bei Google Maps war ich schon, habe da bereits davon einen passenden Ausschnitt als Lageplan auf der Homepage. Wußte nicht dass es mit solchen Fähnchen auch geht.

Hatt gedacht es gibt da ein Snippet oder einen anderen Dienst den man dafür nutzen kann.
Hä? Was hast du und was willst du? Ein Snippet. Na dann (wie ich bereits erwähnte) wirf einen Blick in die API!
Da gibts beispielsweise ein Tutorial. Es gibt sogar ein Beispiel mit Marker.

HTML-Code:
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="initial-scale=1.0, user-scalable=no" />
<meta http-equiv="content-type" content="text/html; charset=UTF-8"/>
<title>Google Maps JavaScript API v3 Example: Marker Simple</title>
<link href="http://code.google.com/apis/maps/documentation/javascript/examples/default.css" rel="stylesheet" type="text/css" />
<script type="text/javascript" src="http://maps.googleapis.com/maps/api/js?sensor=false"></script>
<script type="text/javascript">
  function initialize() {
    var myLatlng = new google.maps.LatLng(-25.363882,131.044922);
    var myOptions = {
      zoom: 4,
      center: myLatlng,
      mapTypeId: google.maps.MapTypeId.ROADMAP
    }
    var map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);
    
    var marker = new google.maps.Marker({
        position: myLatlng, 
        map: map,
        title:"Hello World!"
    });   
  }
</script>
</head>
<body onload="initialize()">
  <div id="map_canvas"></div>
</body>

</html>
Ist es denn nicht genau das, was du suchst?
__________________
she3p ist offline   Mit Zitat antworten
Alt 05.08.11, 00:50   #5 (permalink)
Moderator
 
Benutzerbild von bitmuncher
 
Registriert seit: 30.09.06
bitmuncher Quadcorebitmuncher Quadcorebitmuncher Quadcorebitmuncher Quadcorebitmuncher Quadcorebitmuncher Quadcore
Likes: 443
Standard

Naja, das Einfügen von Markern in eine GoogleMap ist schon etwas komplexer als die simple Anzeige. Für die reine Anzeige empfehle ich übrigens Google Maps API Tutorial Da wird alles Schritt für Schritt erläutert inkl. dem Einfügen von HTML-Code, Style-Informationen usw..

Auch beim Einfügen muss natürlich GoogleMaps im Header der HTML-Datei geladen werden:

Code:
<script src="http://maps.google.com/maps?file=api&v=2&key=deinmapkey" type="text/javascript"></script>
Einen Map-Key bekommt man unter Google Maps-API anfordern - GoogleÂ*MapsÂ*API-Familie - Google Code

Dann braucht man zum Einfügen natürlich ein Formular. Das könnte z.B. so aussehen:

Code:
<form action="addmarker_submit.php" method="post">

<select id="precision" style="width:280px;" >
<OPTION selected ></OPTION>
<OPTION></OPTION>
<OPTION></OPTION>
<OPTION></OPTION>
<OPTION></OPTION>
</select><br />

Breitengrad: <input type="text" name="breitengrad" id="breitengrad" size="50" maxlength="20" /><br />
Laengengrad: <input type="text" name="laengengrad" id="laengengrad" size="50" maxlength="20" /><br />
Typ: <select name="typ" size="1">      
<option>Typ1</option>      
<option>Typ2</option>
</select><br />

<input type="submit" value="Absenden">
</form>

<div id="map" style="width:512px; height:400px"></div>
<script type="text/javascript"> 
//<![CDATA[
var map = new GMap2(document.getElementById("map"));
map.addControl(new GMapTypeControl(1));
map.addControl(new GLargeMapControl());
map.setCenter(new GLatLng(50.84757295,9.71191406), 6);
var html = "<div style='width: 208px; height: 100px'>You can see that 'mousemove' event returns mouse coordinates even on marker or infowindow."
var marker = new GMarker(new GLatLng(60,25));
map.addOverlay(marker);
map.getDragObject().setDraggableCursor("crosshair");
GEvent.addListener(marker, "click", function() {
marker.openInfoWindowHtml(html);});
var lastPoint;
GEvent.addListener(map, "mousemove", function(point){
var latLngStrF = point.lat().toFixed(14) + ', ' + point.lng().toFixed(14) ;
var latLngStr8 = point.lat().toFixed(8) + ', ' + point.lng().toFixed(8);
var latLngStr6 = point.lat().toFixed(6) + ', ' + point.lng().toFixed(6);
var latLngStr5 = point.lat().toFixed(5) + ', ' + point.lng().toFixed(5);
var latLngStr4 = point.lat().toFixed(4) + ', ' + point.lng().toFixed(4);
document.getElementById("precision").options[0].text = latLngStrF;
document.getElementById("precision").options[1].text = latLngStr8;
document.getElementById("precision").options[2].text = latLngStr6;
document.getElementById("precision").options[3].text = latLngStr5; 
document.getElementById("precision").options[4].text = latLngStr4;
lastPoint = point;
});
GEvent.addListener(map, "click", function(){
var latLatStr = lastPoint.lat().toFixed(14);document.getElementById("breitengrad").value = latLatStr;
var latLngStr = lastPoint.lng().toFixed(14);
document.getElementById("laengengrad").value = latLngStr;
});
//]]>
</script>

Damit solltest du grundlegend ein Formular mit 2 Eingabefeldern haben und einer Select-Box. Unter dem Formular wird eine Karte angezeigt, und wenn du irgendwo auf diese klickst, werden automatisch die Koordinaten in die Eingabefelder eingetragen. In der Select-Box werden die Koordinaten schon bei der Bewegung der Maus über der Karte angezeigt und man kann unterschiedliche Präzisionen auswählen. Weiterhin wird hier auch gleich ein Typ definiert, so dass man bei der Anzeige verschiedene Marker für verschiedene Ortstypen nutzen kann. Natürlich kann man das auch einfach mit versteckten Eingabefeldern (type=hidden) umsetzen, so dass der User die Koordinaten gar nicht erst zu Gesicht bekommt.

Nun musst du nur noch deine Marker-Tabelle in einer Datenbank mit dem als Action vermerkten Skript befüllen, in diesem Fall also addmarker_submit.php.

Das könnte dann im einfachsten Fall z.B. so aussehen:

Code:
<?php
include 'config.php';
$config = new Config();
$db_host = $config->mysql_host;
$db_user = $config->mysql_user;
$db_pass = $config->mysql_pass;
$db_name = $config->mysql_name;
$tbl_name = 'markers';

$breitengrad = $_POST['breitengrad'];
$laengengrad = $_POST['laengengrad'];
$typ = $_POST['typ'];
$typ = strtolower($typ);

$breitengrad = mysql_real_escape_string($breitengrad);
$laengengrad = mysql_real_escape_string($laengengrad);

mysql_connect("$db_host", "$db_user", "$db_pass")or die("cannot connect");
mysql_select_db("$db_name")or die("cannot select DB");

$sql = "INSERT INTO `".$tbl_name."` (`lat`, `lng`) VALUES('".$breitengrad."', '".$laengengrad."')";
$result = mysql_query($sql);
?>
Hier fehlt natürlich noch die Input-Validierung, aber die wirst du ja hoffentlich allein hinbekommen.

Die Funktionalität zum Generieren der XML-Informationen für die Marker könnte z.B. so umgesetzt werden.

Code:
<?php
include('config.php');
$config = new Config();
$host = $config->mysql_host;
$username = $config->mysql_user;
$password = $config->mysql_pass;
$database = $config->mysql_name;

$connection=mysql_connect ($host, $username, $password);
if (!$connection) {
  die('Not connected : ' . mysql_error());
}

$db_selected = mysql_select_db($database, $connection);
if (!$db_selected) {
  die ('Can\'t use db : ' . mysql_error());
}

$query = "SELECT * FROM markers WHERE 1";
$result = mysql_query($query);
if (!$result) {
  die('Invalid query: ' . mysql_error());
}

header("Content-type: text/xml");

echo '<markers>';

while($row = @mysql_fetch_assoc($result)) {
  echo '<marker ';
  echo 'lat="' . $row['lat'] . '" ';
  echo 'lng="' . $row['lng'] . '" ';
  echo 'type="' . $row['type'] . '" ';
  echo '/>';
}

echo '</markers>';

?>
Der Code ist ungetestet und bedarf daher ggf. noch ein paar Anpassungen und IDs u.ä. müssen natürlich für die Anzeige beachtet werden.
__________________
Mein Blog - Mein Job - Diaspora

Der Ring uns zu knechten besteht aus 12 Sternen auf blauem Grund.

Neue Beiträge im Habo via Twitter - Das HaBo auf FB - Das HaBo bei G+
bitmuncher ist gerade online   Mit Zitat antworten
Alt 06.08.11, 00:45   #6 (permalink)
 
Registriert seit: 22.04.08
jemo. Leistung: Facit NTK
Likes: 15
Standard

Alternativ kannst du auch mal nach OpenStreetMaps googlen.. da braucht man dann keinen Key und kann sich auch problem los eine Karte anzeigen (die allerdings qualitativ, gemessen an der Genauigkeit und Vollständigkeit, nicht so gut ist).
jemo. ist offline   Mit Zitat antworten
Alt 06.08.11, 22:28   #7 (permalink)
Themenstarter
 
Registriert seit: 04.08.11
Tiberius Leistung: Facit NTK
Likes: 0
Standard

Hi,

danke schonmal für die Tipps, werde aber ein paar Tage brauchen bis ich dazu komme.

Gruß

Tiberius
Tiberius ist offline   Mit Zitat antworten
Antwort
   
- Anzeige -

Werbung ist gerade online    

[HaBo] » Web, Network & Multimedia Palace » (Web-) Design und webbasierte Sprachen » Landkartenstatistik
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind aus
Pingbacks sind aus
Refbacks sind aus



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