Realtid GPS Tracker med integrerad Google Maps (6 / 7 steg)
Steg 6:
PLONE
Den nästa programvara måste vi installera är Plone. Plone är ett CMS (Content Management System) byggt på Zope, som är en populär web application server. Vi kommer att använda endast Zope funktionaliteten för Plone och det är inte CMS funktioner. I själva verket är använda Plone för det här programmet en overkill eftersom du kan bara hämta Zope och använda detta. Jag hade redan Plone installerade på min dator och jag ska visa dig hur du använder Plone, men om du vill prova Zope, är du välkommen att göra detta. Instruktionerna är mycket lika.
- Hämta Plone 3.3.5 från http://launchpad.net/plone/3.3/3.3.5/+download/Plone-3.3.5-UnifiedInstaller.tgz till /usr/local/src. (Jag använde Plone 3.3.5, Plone4 har ett radikalt nytt gränssnitt och stegen nedan kanske inte fungerar. Du har till gräva runt, om du använder Plone4.)
- Installera Plone
CD /usr/local/src sudo tjära - xvf Plone-3.3.5-UnifiedInstaller.tgz cd Plone-3.3.5-UnifiedInstaller/ sudo./install.sh fristående
- Anteckna den Username och lösenord visas i slutet av installationsprocessen. Du behöver det komma åt Plone GUI. Plone kommer att installeras i /usr/local/Plone
Gå till katalogen Zope i Plone, i detta fall är det /usr/local/Plone/Zope-2.10.11-final-py2.4.
Ladda ner ZmySQLDA från http://www.zope.org/Members/adustman/Products/ZMySQLDA i katalogen och packa upp tar-filen med kommandot:
sudo tar - xvxf ZMySQLDA-2.0.8.tar.gz
Om allt går ok, kommer en ZMySQLDA katalog att skapas under /usr/local/Plone/Zope-2.10.11-final-py2.4/lib/python/Products.
ZMySQLDA är en SQL-databas adapter som Zope kommer att använda att prata med databasen. ZMySQLDA med hjälp av en annan bit av programvara kallas MySQLdb att utföra sina uppgifter. Låt oss hämta och installera MySQLdb nu.
CD /usr/local/Plone/Zope-2.10.11-final-py2.4/lib/python/Products
Ladda ner MySQLdb från http://www.zope.org/Members/adustman/Products/MySQLdb i katalogen
Extrahera filen och installera MySQLdb med följande kommandon:
sudo tjära - xvf MySQL-python-1.2.0.tar.gz
CD MySQL-python-1.2.0
sudo /usr/local/Plone/Python-2.4/bin/python setup.py bygga sudo /usr/local/Plone/Python-2.4/bin/python setup.py installera
En mycket viktig sak att notera när bygga och installera MySQLdb är att använda samma python binärfilen som levererades med Plone. Om du inte använder samma exakta python binärfilen som levererades med Plone, kommer inte Plone att kunna hitta den. I detta fall bor den binära python som levererades med Plone i /usr/local/Plone/Python-2.4/bin.
Starta Plone
CD /usr/local/Plone/zinstance/bin sudo. / plonectl start
Vänta en liten stund för Plone att starta upp och sedan öppna en webbläsare och peka den till: http://localhost: 8080/manage_main. Detta förutsatt att allt är på samma dator. Om du har tillgång till från en annan dator, ändra localhost till IP-adressen för datorn som kör Plone.
Du bör se en dialogruta för att ange användarnamn och lösenord. Ange användarnamn och lösenord du antecknade ner efter installationsprocessen Plone. Du bör se root mapp-vyn som visas nedan:
1. skapa en SQL-databasanslutning
Välj den 'Z SQL databas ansluting"från droppa ned listan till höger. Ange i textrutan databas anslutning sträng, gmap Ersätt värddator och port med dina värdnamn och port respecively. Ange om SQL-databasen körs på samma maskin som Plone,
gmap & lt; användarnamn & gt; & lt; lösenord & gt;
Klicka på fliken bläddra i Z MySQL-databas-anslutning. Du bör kunna se tabellen (gmaptracker). Klicka på den + tecken och du bör kunna se delarna av tabellen.
2. Tillsätt en Z SQL metod för att hämta den sista raden från tabellen SQL.
Välj "Z SQL-metoden" från droppa ned listan till höger. Ange "GmaplocsPkSelectLastAdded" för id och "SQL metod att välja Data" för kakel.
Ange kod:
välja * från gmaptracker beställning av id desc begränsa 1
Klicka på Lägg till.
Från roten mappvyn, klicka på metoden GmaplocsPkSelectLastAdded från root mapp-vyn och klicka på Avancerat Tab. ändra värdet för "Maximalt rader som ska hämtas" till 0 (noll). Spara ändringarna.
På varför detta bör göras, Läs den här. http://www.zope.org/members/adustman/tips/no_limits
3. lägga till en DTML metod
Gå till vyn root-mappen. Välj "DTML metod" från droppa ned listan till höger. Ange "data.xml" för id och en beskrivande titel (kan av något du vill). Klicka på Lägg till och redigera.
Ange koden
& lt;? XML-version = "1.0" encoding = "UTF-8"? & gt;
& lt; markörer & gt;
& lt; dtml GmaplocsPkSelectLastAdded & gt;
& lt; markör lat = "& amp; lt; dtml-var lat & gt;" lng = "& lt; dtml-var lon & gt;" / & gt;
& lt; / dtml-i & gt;
& lt; / markörer & gt;
Spara ändringarna.
4. lägga till ett DTML dokument
Gå till vyn root-mappen. Välj "DTML dokument" från droppa ned listan till höger ". Ange "gpstrack.html" för id och ett beskrivande namn. Klicka på Lägg till och redigera.
Ange kod:
& lt;! DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 strikt / / EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd" & gt;
& lt; html xmlns = "http://www.w3.org/1999/xhtml" & gt;
& lt; head & gt;
& lt; titel & gt; Realtid GPRS baserad GPS-Tracker & lt; / titel & gt;
& lt; script src = "http://maps.google.com/maps?
Fil = api & amp; v = 1" type =" text/javascript"& gt; & lt; / script & gt;
& lt;! --Göra dokumentet kroppen tar upp hela skärmen-- & gt;
& lt; style type = "text/css" & gt;
v\: * {behavior:url(#default#VML);}
HTML, kroppen {bredd: 100%, höjd: 100%}
kroppen {marginal-top: 0px; marginal-höger: 0px; vänster marginal: 0px; marginal-botten: 0px}
& lt; / stil & gt;
& lt; skript type = "text/javascript" & gt;
& lt;! [CDATA [
funktionen load() {
var karta = nya GMap(document.getElementById("map"));
var punkt = nya GPoint(0,0);
map.addControl (nya GLargeMapControl());
map.addControl (nya GMapTypeControl());
map.centerAndZoom (punkt, 1).
window.setTimeout(function(){reloadMap(map)},1000);
}
funktion reloadMap(map) {
var begäran = GXmlHttp.create();
Request.Open ("Få", "data.xml", true);
Request.onreadystatechange = function() {
om (request.readyState == 4) {
var xmlDoc = request.responseXML;
var markörer = xmlDoc.documentElement.getElementsByTagName("marker");
för (var jag = 0; & lt; markers.length; i ++) {
var punkt = ny
GPoint(parseFloat(markers[i].getAttribute("lng")),
parseFloat(markers[i].getAttribute("lat")));
var markör = nya GMarker(point);
map.clearOverlays();
map.addOverlay(marker);
map.centerAtLatLng(point);
}
}
}
Request.send(null);
window.setTimeout(function(){reloadMap(map)},1000);
}
Övervaka fönster omformateringsläget händelsen och låt karta vet när den inträffar
om (window.attachEvent) {
window.attachEvent ("onresize", function() {this.map.onResize()});
} annat {
window.addEventListener ("ändra storlek", function() {this.map.onResize()}, false);
}
[]] & gt;
& lt; / script & gt;
& lt; / huvud & gt;
& lt; kropp onload="load()" & gt;
& lt; div id = "karta" style = "bredd: 100%. höjd: 100%;" & gt; & lt; / div & gt;
& lt; / kropp & gt;
& lt; / HTML- & gt;
Spara ändringarna.