Shop Shop NavigatorNavigator
91420059142005 李世詠李世詠91420219142021 陳冠宏陳冠宏91420349142034 尹 川尹 川
指導老師:指導老師: 黃三益教授黃三益教授
Shop Navigator ?Shop Navigator ?
?
系統架構系統架構
Information.jsp
管理者介面
使用者介面
ShopMIDlet
Agent
Sender
Map
ClientServer
ServerServer 端端的系統流程的系統流程
登入
修改自己的商店訊息
使用者註冊
審核
是否為系統會員
開發環境: Tomcat JSP Mysql
行動裝置端行動裝置端的系統流程的系統流程
使用者啟動程式
透過GPS獲得位置座標
向伺服器傳送要求
商店優惠訊息
從資料庫中取得商店的優惠訊息與電子地圖資料
將電子地圖與優惠訊息呈現給使用者
GPS的部分省略直接給定位置座標
電子地圖資料
程式架構程式架構public class ShopMIDlet
extends MIDlet implements CommandListener
private class Agentimplements Runnable
private class Senderextends Thread
private class Mapextends Canvas implements Runnable
取得位置座標取得位置座標
private int userXPosition = 100, userYPosition = 100;
向伺服器傳送要求向伺服器傳送要求 sc = (SocketConnection) Connector.open("socket://140.117.
12.184:8080"); is = new InputStreamReader(sc.openInputStream(),"UTF8"); os = sc.openOutputStream(); sender = new Sender(os); sender.send("GET /oop/information.jsp? x="+userXPosition+"&y="+userYPosition+" HTTP/1.0\n");
XmlParser parser = new XmlParser(is); Document document = new Document(); document.parse(parser);
Element root = document.getRootElement();
接收並儲存優惠訊息接收並儲存優惠訊息Element root=document.getRootElement
( );
Element eleA = root.getElement( 1 ) ;for(int j=0 ; j<eleA.getChildCount() ; j++){
Element eleB = eleA.getElement( j ) ;Element sn = eleB.getElement( 0 ) ;Element si = eleB.getElement( 1 ) ;Element xp = eleB.getElement( 2 ) ;Element yp = eleB.getElement( 3 ) ;shopinfo[ j ] = new ShopInfo(
sn.getText(), si.getText(), Integer.parseInt( xp.getText( )),Integer.parseInt( yp.getText( ))(…)
<?xml version="1.0" ?> <ShopInformation><Source> <Name>NSYSU-MIS</Nam <IP>140.117.12.140</IP> </Source><Content>
<Item> <ShopName>22世紀 </ShopN <ShopInfo> 每星期三深夜免費 <ShopXPosition>100</ShopX <ShopYPosition>130</ShopY </Item><Item> <ShopName> 城市漢堡 </Shop(…)
接收並儲存地圖訊息接收並儲存地圖訊息Element root=document.getRootElement( );Element eleA = root.getElement( 2 ) ;for(int j=0 ; j<eleA.getChildCount() ; j++){
Element eleB = eleA.getElement( j ) ;Element rn = eleB.getElement( 0 ) ;Element sx = eleB.getElement( 1 ) ;Element sy = eleB.getElement( 2 ) ;Element ex = eleB.getElement( 3 ) ;Element ey = eleB.getElement( 4 ) ;road[ j ] = new Road(
rn.getText( ),Integer.parseInt( sx.getText( )),Integer.parseInt( sy.getText( )),Integer.parseInt( ex.getText( )),Integer.parseInt( ey.getText( ))(…)
<Road> <Item> <RoadName> 登山街 </RoadN
a <StartX>100</StartX> <StartY>10</StartY> <EndX>180</EndX> <EndY>60</EndY> </Item><Item> <RoadName> 濱海一路 </Road <StartX>10</StartX> <StartY>40</StartY> (…)
地圖地圖
電子地圖電子地圖
Q&A