lol,樓上仗劍折花的方法太幽默了,他那個(gè)完全是在模仿一種效果,如果是需要模仿就夠了的話還不如直接做成幾張圖片切換,還可以做的更加美觀,我覺得樓主是希望獲得能判斷經(jīng)緯度的動(dòng)態(tài)效果,不過(guò)如果要自己重頭創(chuàng)建的話幾乎不可能.不僅要用到web技術(shù)還需要gis技術(shù)以及具有空間地理坐標(biāo)的地理數(shù)據(jù),每一項(xiàng)都不是幾個(gè)人能在短期完成的工程,另一點(diǎn)樓主要實(shí)現(xiàn)實(shí)現(xiàn)顯示有意義的動(dòng)態(tài)區(qū)域框的功能,如果是bs模式的話需要使用支持畫圖功能的語(yǔ)言,而這類語(yǔ)言當(dāng)前瀏覽器支持均非常有限,替代方法是使用java applet,即編寫java,
成都創(chuàng)新互聯(lián)公司是創(chuàng)新、創(chuàng)意、研發(fā)型一體的綜合型網(wǎng)站建設(shè)公司,自成立以來(lái)公司不斷探索創(chuàng)新,始終堅(jiān)持為客戶提供滿意周到的服務(wù),在本地打下了良好的口碑,在過(guò)去的10多年時(shí)間我們累計(jì)服務(wù)了上千家以及全國(guó)政企客戶,如自上料攪拌車等企業(yè)單位,完善的項(xiàng)目管理流程,嚴(yán)格把控項(xiàng)目進(jìn)度與質(zhì)量監(jiān)控加上過(guò)硬的技術(shù)實(shí)力獲得客戶的一致稱贊。
直觀的概念,google map即包含樓主所要的經(jīng)緯度的坐標(biāo)數(shù)據(jù),因?yàn)橛羞@些數(shù)據(jù)所以你才能在google map上實(shí)現(xiàn)精確定位,畫圖功能google map也沒有實(shí)現(xiàn),你可以找一些web gis的一些更加高級(jí)的應(yīng)用網(wǎng)站應(yīng)該有這項(xiàng)功能,所以,google map解決這個(gè)問(wèn)題也不是一天兩天一個(gè)人兩個(gè)人能做好的,要不就不會(huì)成為google的產(chǎn)品了。
解決辦法,
你可以基于google提供的google map提供的api來(lái)創(chuàng)建你的應(yīng)用,這樣經(jīng)緯度,地圖數(shù)據(jù)以及主要的技術(shù)問(wèn)題都由google map提供,你只需基于它創(chuàng)建自己的應(yīng)用即可,但要知道如何使用google api也不是輕松的事。網(wǎng)上有很多關(guān)于google api學(xué)習(xí)的文章和著作,可先學(xué)習(xí)一下
這是代碼,你可以自己調(diào)試一下。
數(shù)據(jù)結(jié)構(gòu)如下:
CREATE TABLE dtree (
id int,
pid int,
name varchar(200),
url varchar(200),
title varchar(200),
target varchar(200),
icon varchar(200),
iconopen varchar(200),
opened bit);
為了實(shí)現(xiàn)獲取數(shù)據(jù)庫(kù)變量功能,需要建立一個(gè)DTree類,并編譯生成CLASS文件,放入\WEB-INF\classes文件夾下。
DTree類代碼如下:
package work3;
public class DTree {
private int id;
private int pid;
private String name;
private String url;
private String title;
private String target;
private String icon;
private String iconOpen;
private int opened;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public int getPid() {
return pid;
}
public void setPid(int pid) {
this.pid = pid;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getUrl() {
return url;
}
public void setUrl(String url) {
this.url = url;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public String getTarget() {
return target;
}
public void setTarget(String target) {
this.target = target;
}
public String getIcon() {
return icon;
}
public void setIcon(String icon) {
this.icon = icon;
}
public String getIconOpen() {
return iconOpen;
}
public void setIconOpen(String iconOpen) {
this.iconOpen = iconOpen;
}
public int getOpened() {
return opened;
}
public void setOpened(int opened) {
this.opened = opened;
}
}
work3.jsp代碼如下:
%@ page language="java" contentType="text/html; charset=GB18030" pageEncoding="GB18030"%
%@ page import="java.sql.*"%
jsp:useBean id='settree' scope="application" class="work3.DTree" /
!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
""
html
head
meta http-equiv="Content-Type" content="text/html; charset=GB18030"
link rel="StyleSheet" href="dtree.css" type="text/css" /
script type="text/javascript" src="dtree.js"/script
titledTree in MySQL/title
/head
body
h2
Example
/h2
div class="dtree"
p
a href="javascript: d.openAll();"open all/a |
a href="javascript: d.closeAll();"close all/a
/p
script type="text/javascript"
!--
d = new dTree('d');
%
//驅(qū)動(dòng)程序名
String driverName = "com.microsoft.jdbc.sqlserver.SQLServerDriver";
//數(shù)據(jù)庫(kù)用戶名
String userName = "sa";
//密碼
String userPwd = "1";
//數(shù)據(jù)庫(kù)名
String dbName = "master";
//表名
String tableName = "dtree";
//連接字符串
String url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName="+dbName;
//加載驅(qū)動(dòng)
Class.forName(driverName).newInstance();
//連接數(shù)據(jù)庫(kù)
java.sql.Connection conn = DriverManager.getConnection(url,userName,userPwd);
//得到Statement實(shí)例
java.sql.Statement statement = conn.createStatement();
//查詢數(shù)據(jù)
String sql = "select * from " + tableName;
//返回結(jié)果
java.sql.ResultSet rs = statement.executeQuery(sql);
//獲取變量
while (rs.next()) {
settree.setId(rs.getInt(1));
settree.setPid(rs.getInt(2));
settree.setName(rs.getString(3));
settree.setUrl(rs.getString(4));
settree.setTitle(rs.getString(5));
settree.setTarget(rs.getString(6));
settree.setIcon(rs.getString(7));
settree.setIconOpen(rs.getString(8));
settree.setOpened(rs.getInt(9));
if(settree.getPid()==0)
settree.setOpened(1);
%
d.add(%=settree.getId()%,%=settree.getPid()%,'%=settree.getName()%','%=settree.getUrl()%','%=settree.getTitle()%','%=settree.getTarget()%','','',%=settree.getOpened()%);
%
}
%
document.write(d);
//--
/script
/div
/body
/html
1、創(chuàng)建一個(gè)自定義圖層實(shí)例或獲取canvas實(shí)例varcanvas等于documentcreateElement(canvas)或?qū)anvas寬高設(shè)置為地圖實(shí)例的寬高。
2、為自定義圖層添加渲染方法自定義圖層的render方法即用戶自定義的圖層繪制方式。