求一个关于谷歌地图的问题!!必结贴!

encienqi 2009-10-11 11:08:10
描述:主要是想从数据库中动态读出坐标,然后显示到谷歌地图中
现在程序可以显示写死的点,可以读出数据库中的坐标,但是就是无法将读出的坐标显示在地图上!

程序如下:
前台代码

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default2.aspx.cs" Inherits="Default2" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1" runat="server">
<title>Untitled Page</title>
<script type="text/javascript">

<%=GetRootIDArray() %>;
</script>
</head>
<body onload="initialize()" onunload="GUnload()">
<script src="http://ditu.google.cn/maps?file=api&v=2&key=abcdefg&sensor=true_or_false"
type="text/javascript"></script>

<div id="map" style="width: 700px; height: 450px" align="center"></div>
<script src="js/test.js" type="text/javascript" ></script>
<asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>

</body>
</html>


后台C#

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data;
using System.Data.SqlClient;
using System.Web.UI.HtmlControls;

public partial class Default2 : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{

}
protected string GetRootIDArray()
{
SqlConnection conn = MyDB.GetConn();
SqlCommand cmd = new SqlCommand("select jingdu, weidu from jiamengshang", conn);
SqlDataAdapter adp = new SqlDataAdapter(cmd);
DataSet ds = new DataSet();
adp.Fill(ds);
System.Text.StringBuilder text = new System.Text.StringBuilder();
if (ds.Tables.Count > 0)
{

for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
{
text.AppendFormat("jingxiaoshang[ {0} ] = new Array('{1}','{2}');", i.ToString(), ds.Tables[0].Rows[i]["jingdu"].ToString(), ds.Tables[0].Rows[i]["weidu"].ToString());
}
}
Label1.Text = text.ToString();
return text.ToString();

}
}


test.js代码

var jingxiaoshang = new Array();

var map = new GMap2(document.getElementById("map"));
//添加一个控制条
map.addControl(new GSmallMapControl());

//配置中心点经纬度(青海)和缩放系数,并显示
map.setCenter(new GLatLng(35.66, 96.74), 6);
//var jingxiaoshang = new Array();


for (i = 0; i < jingxiaoshang.length; i++) {
var temp = point + i;
temp = new GLatlng(jingxiaoshang[i][0], jingxiaoshang[i][1]);
map.addOverlay(createMarker(temp, i));
}

//var point2 = new GLatLng(36.56, 101.74);
//map.addOverlay(createMarker(point2, 2));

//上面这两句是可以设置点,createMarker后面的1可以设置成超连接或者显示东西
//根据数据库里的数据循环输出上面这两句话就可以了,输出所有点


function createMarker(point, number) {
var marker = new GMarker(point);
GEvent.addListener(marker, "click", function() {
marker.openInfoWindowHtml("xining<b>" + number + "</b>");
});
return marker;
}
//这个函数是输出点击那个点之后出来,输出的内容。


数据库代码

USE [binge]
GO
/****** 对象: Table [dbo].[jiamengshang] 脚本日期: 10/11/2009 23:06:52 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[jiamengshang](
[jiamengshangId] [int] NULL,
[bianhao] [varchar](10) NULL,
[sheng] [varchar](10) NULL,
[shi] [varchar](10) NULL,
[wangwangId] [varchar](10) NULL,
[QQId] [varchar](10) NULL,
[website] [varchar](10) NULL,
[dizhi] [varchar](10) NULL,
[jingdu] [varchar](10) NULL,
[weidu] [varchar](10) NULL
) ON [PRIMARY]

GO
SET ANSI_PADDING OFF

insert jiamengshang (jiamengshangId,bianhao,sheng,shi,wangwangId,QQId,website,dizhi,jingdu,weidu) values ( 1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'36.08','101.09')
insert jiamengshang (jiamengshangId,bianhao,sheng,shi,wangwangId,QQId,website,dizhi,jingdu,weidu) values ( 2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'36.18','101.19')
...全文
370 19 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
gwfmqq 2010-06-29
  • 打赏
  • 举报
回复
[Quote=引用 15 楼 chinmo 的回复:]
虽然说你在后台定义了jingxiaoshang
但是你前台一new就没了都
[/Quote]我靠,装内行,到现在才看出来,什么水平
  • 打赏
  • 举报
回复
换类型,坐标应该是数字,非字符串
encienqi 2009-10-13
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 chinmo 的回复:]
你右键查看你的HTML源代码吧
肯定没值
[/Quote]

10楼的就是右键查HTML代码后的结果~
encienqi 2009-10-13
  • 打赏
  • 举报
回复
[Quote=引用 15 楼 chinmo 的回复:]
虽然说你在后台定义了jingxiaoshang
但是你前台一new就没了都
[/Quote]
<script type="text/javascript"> var jingxiaoshang = new Array(); jingxiaoshang[0] = new Array('36.08','101.09');jingxiaoshang[1] = new Array('36.18','101.19'); </script>

已经读出来了呀,而且用alert(jingxiaoshang[0][0]);可以谈出对应的数据呀
  • 打赏
  • 举报
回复
虽然说你在后台定义了jingxiaoshang
但是你前台一new就没了都
  • 打赏
  • 举报
回复
你如何读出坐标的?没看到
gkw521 2009-10-12
  • 打赏
  • 举报
回复
很复杂的样子。。
cooledit2730 2009-10-12
  • 打赏
  • 举报
回复

function showAddress(address) {
if (geocoder && !big) {
geocoder.getLatLng(
address,
function(point) {
if (!point) {
alert("不能解析: " + address);
} else {
var marker = new GMarker(point);
map.addOverlay(marker);
map.setCenter(point, 13);
}
}
);
}
}
大川101 2009-10-12
  • 打赏
  • 举报
回复
学习,帮顶!!!
encienqi 2009-10-12
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 mrshelly 的回复:]
test.js 中你把
var jingxiaoshang = new Array();
jingxiaoshang 重置了...


你应该把 var jingxiaoshang = new Array();

这句写到上面的 <script 里面去....

仔细看你生成的HTML代码吧...
[/Quote]
你好,加在里面也不行呀~
encienqi 2009-10-12
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 chinmo 的回复:]
你如何读出坐标的?没看到
[/Quote]

protected string GetRootIDArray()
{
SqlConnection conn = MyDB.GetConn();
SqlCommand cmd = new SqlCommand("select jingdu, weidu from jiamengshang", conn);
SqlDataAdapter adp = new SqlDataAdapter(cmd);
DataSet ds = new DataSet();
adp.Fill(ds);
System.Text.StringBuilder text = new System.Text.StringBuilder();
if (ds.Tables.Count > 0)
{

for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
{
text.AppendFormat("jingxiaoshang[ {0} ] = new Array('{1}','{2}');", i.ToString(), ds.Tables[0].Rows[i]["jingdu"].ToString(), ds.Tables[0].Rows[i]["weidu"].ToString());
}
}
Label1.Text = text.ToString();
return text.ToString();

}



这个读出坐标,写到jingxiaoshang[]数组中了呀~
24K純帥 2009-10-12
  • 打赏
  • 举报
回复
先顶下,有点复杂。。
  • 打赏
  • 举报
回复
你右键查看你的HTML源代码吧
肯定没值
  • 打赏
  • 举报
回复
我还是没看到你在客户端得到坐标值的
encienqi 2009-10-12
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 mrshelly 的回复:]
把你的页面放出来...

你加了.你怎么加的?加了后,运行的结果是什么???
[/Quote]
你好,我把JS代码写在程序里了,然后运行,产生的HTML代码如下:



<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html>
<head id="Head1"><title>
Untitled Page
</title></head>
<body onload="initialize()" onunload="GUnload()">


<div id="map" style="width: 700px; height: 450px" align="center"></div>
<script src="http://ditu.google.cn/maps?file=api&v=2&key=abcdefg&sensor=true_or_false"
type="text/javascript"></script>
<script type="text/javascript"> var jingxiaoshang = new Array(); jingxiaoshang[0] = new Array('36.08','101.09');jingxiaoshang[1] = new Array('36.18','101.19'); </script>
<script type="text/javascript">

var map = new GMap2(document.getElementById("map"));
//添加一个控制条
map.addControl(new GSmallMapControl());

//配置中心点经纬度(青海)和缩放系数,并显示
map.setCenter(new GLatLng(35.66, 96.74), 6);

for (i = 0; i < jingxiaoshang.length; i++) {
map.addOverlay(createMarker(new GLatlng(jingxiaoshang[i][0], jingxiaoshang[i][1]), i + 1));
}

// var point2 = new GLatLng(36.56, 101.74);
// map.addOverlay(createMarker(point2, 2));

//上面这两句是可以设置点,createMarker后面的1可以设置成超连接或者显示东西
//根据数据库里的数据循环输出上面这两句话就可以了,输出所有点


function createMarker(point, number) {
var marker = new GMarker(point);
GEvent.addListener(marker, "click", function() {
marker.openInfoWindowHtml("xining<b>" + number + "</b>");
});
return marker;
}
//这个函数是输出点击那个点之后出来,输出的内容。

</script>


<span id="Label1">jingxiaoshang[0] = new Array('36.08','101.09');jingxiaoshang[1] = new Array('36.18','101.19');</span>

</body>
</html>



运行时关于脚本报2个错误
Line:26
Char:9
Code:0
Error:'GLatlng' 未定义
网址:http://localhost:1531/WebSite3/Default3.aspx

Line:9
Char:1
Code:0
Error:缺少对象
网址:http://localhost:1531/WebSite3/Default3.aspx

我不明白为什么用“ map.addOverlay(createMarker(new GLatlng(jingxiaoshang[i][0], jingxiaoshang[i][1]), i + 1));”,从数据库中动态读出就不行。

如果写成
var point2 = new GLatLng(36.56, 101.74);
map.addOverlay(createMarker(point2, 2));
这样,点就可以标记出来。

或者是在程序里给出数组,都可以正常执行,如:
var mycars=new Array(2);
mycars[0]=new Array("35.56","96.97");
mycars[1]=new Array("35.76","97.86");
for (i = 0; i < mycars.length; i++) {

map.addOverlay(createMarker(new GLatLng(mycars[i][0], mycars[i][1]),i+1));
}

就是从数据库读出后,不知为何就执行不了~
mrshelly 2009-10-12
  • 打赏
  • 举报
回复
把你的页面放出来...

你加了.你怎么加的?加了后,运行的结果是什么???
encienqi 2009-10-12
  • 打赏
  • 举报
回复
求助中~~~~~
mrshelly 2009-10-12
  • 打赏
  • 举报
回复
test.js 中你把
var jingxiaoshang = new Array();
jingxiaoshang 重置了...



你应该把 var jingxiaoshang = new Array();

这句写到上面的 <script 里面去....

仔细看你生成的HTML代码吧...
MuBeiBei 2009-10-11
  • 打赏
  • 举报
回复
帮你顶下~·不怎么会.net~`
CruiseYoung提供的带有详细书签的电子书籍目录 http://blog.csdn.net/fksec/article/details/7888251 该资料是《Android高级编程》的源代码 对应的书籍资料见: Android高级编程 基本信息 原书名: Professional Android Application Development 原出版社: Wrox 作者: (英)Reto Meier 译者: 王鹏杰 霍建同 出版社:清华大学出版社 ISBN:9787302228448 上架时间:2010-7-1 出版日期:2010 年6月 开本:16开 页码:398 版次:1-1 内容简介   android提供一个开放的开发环境,为针对移动设备编写创新应用程序带来了激动人心的新机遇。作为使用androidsdk构建这些应用程序的实用指南书籍,《android高级编程》从始至终穿插了一系列示例项目,每个项目都引入android的新功能和新技术,以助您达到最圆满的学习效果。书中介绍android的所有基本功能,并通过简明扼要的示例引导您使用高级功能。    《android高级编程》首先简要介绍android软件栈,接着陈述为手机创建稳定可靠、赏心悦目的应用程序的基本原理。通过学习,您可以打下牢固的理论根基,了解使用当前android 1.0 sdk编写定制移动程序所需的知识,还能灵活快捷地运用未来的增强功能构建最前沿的解决方案。    主要内容    ◆android移动开发的最佳实践    ◆简要介绍活动、intent、清单和资源    ◆如何使用布局和定制view创建用户界面    ◆存储和共享应用程序数据的技术    ◆如何创建基于地图的应用程序,如何使用gps和地理编码位置等基于位置的服务    ◆如何创建和使用后台服务及notification    ◆使用加速计、指南针和摄像头硬件    ◆与电话和网络硬件相关的所有内容,如电话api、sms和网络管理等    ◆高级开发主题,包括安全、ipc以及一些高级图形和用户界面技术    读者对象    本书面向希望在android手机平台上创建应用程序的所有人员。不管是经验丰富的移动开发人员,还是初出茅庐的新手,都能从本书提供的宝贵信息中获益。 作译者   Reto Meier出生于澳大利西南的珀斯市,现居伦敦。 Reto是一位经验丰富的软件开发人员,拥有逾10年的GUI程序架构、设计和开发经验。他在涉足IT行业前曾从事过海洋石油和天然气开发以及金融工作。 Reto始终不渝地追掌握新技术,从2007年Android发布之初Reto就迷恋上了此项技术。他利用业余时间研究包括WPF在内的多种开发平台以及Google的各种开发工具。 详情请访问Reto的个人网站RadioactiveYak,网址是http://blog.radioactiveyak.com。 目录 封面 -14 封底 -13 扉页 -12 版权 -11 作者简介 -10 前言 -9 目录 -4 第1章 Android简介 1 1.1 一些背景信息 2 1.1.1 不远的过去 2 1.1.2 未来的前景 2 1.2 对Android的误解 3 1.3 开放的移动开发平台 3 1.4 自带的Android应用程序 4 1.5 Android SDK功能 5 1.5.1 对包括摄像头、GPS和加速计在内的硬件的访问 5 1.5.2 自带的Google地图、地理编码和基于位置的服务 6 1.5.3 后台服务 6 1.5.4 SQLite 数据存储和检索数据库 6 1.5.5 共享数据和应用程序间通信 7 1.5.6 使用Google Talk的P2P服务 7 1.5.7 扩展的数据支持和2D/3D图形 7 1.5.8 优化的内存和进程管理 8 1.6 开放手机联盟简介 8 1.7 运行Android的环境 8 1.8 从事Android开发的原因 9 1.8.1 推动Android普及的因素 9 1.8.2 Android的独到之处 10 1.8.3 改变移动开发格局 10 1.9 开发框架简介 11 1.9.1 开发包中的资源 11 1.9.2 理解Android软件栈 12 1.9.3 Dalvik虚拟机 13 1.9.4 Android应用程序架构 14 1.9.5 Android库 14 1.9.6 高级Android库 15 1.10 小结 16 第2章 开始入手 17 2.1 Android开发 18 2.1.1

87,997

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧