注册 登录
编程论坛 ASP技术论坛

求类似“baidu地图功能”的地图放大代码

xmuer 发布于 2007-10-26 15:56, 3344 次点击
网络上找了很多,功能都比较简单,那位XDJM有这种功能代码的,可否发出来看看呢?
非常感谢。

[此贴子已经被作者于2007-10-26 15:56:52编辑过]

12 回复
#2
yms1232007-10-26 16:03
那个功能超级复杂的说,里面使用了Ajax技术。
#3
xmuer2007-10-26 16:33

那么有没有鼠标单击地图上某一点 ,这点周围区域就会放大的代码么?

#4
yms1232007-10-26 20:50
个人分析的百度地图的实现原理,在数据库内以一定的大小为单位存储地图,每个地图都有比例尺等级,当点击放大时。获取当前图片的编号后把属于当前图片范围的大图读取出来,这里面的原理是相当的复杂。
目前个人也在研究中,研究这种web电子地图是如何实现。
#5
madpbpl2007-10-26 21:00
以下是引用yms123在2007-10-26 20:50:11的发言:
个人分析的百度地图的实现原理,在数据库内以一定的大小为单位存储地图,每个地图都有比例尺等级,当点击放大时。获取当前图片的编号后把属于当前图片范围的大图读取出来,这里面的原理是相当的复杂。
目前个人也在研究中,研究这种web电子地图是如何实现。


个人认为这就是调用的google earth 的api接口,可能国家现在有所限制,现在在国内可以调用mapbar、51ditu提供的api接口来实现web地图调用,如果是国内提供的免费地图接口,速度上可能比较慢,放在网页上很影响速度的。感觉相对来说还是google earth的速度相对来说最快了。前一阵子研究过,不知道是不是yms123所指的web地图。
你可以参考一下这个网址
[url]http://www.step1.cn/googleapi/map/total.html[/url]

#6
ming2062007-10-26 23:14

就是一个GIS系统嘛,我见过别人用C++做的大项目.数据库存储大量的图片,至少一个样式个图需要存储100张(假如允许放大100倍),使用的数据库是非常大的,O....数据库,你想想,S.....数据库都不用.有关拖动,双击等等事件,是需要AJAX技术的,别把AJAX想得多难了,其实就是JAVASCRIPT的技术整合.............

#7
yms1232007-10-26 23:55
以下是引用ming206在2007-10-26 23:14:15的发言:

就是一个GIS系统嘛,我见过别人用C++做的大项目.数据库存储大量的图片,至少一个样式个图需要存储100张(假如允许放大100倍),使用的数据库是非常大的,O....数据库,你想想,S.....数据库都不用.有关拖动,双击等等事件,是需要AJAX技术的,别把AJAX想得多难了,其实就是JAVASCRIPT的技术整合.............

Ajax当然不难,个人所指楼主说的功能实现起来不好做。

#8
xmuer2007-11-03 00:24

谢谢各位哈,还是不大懂诶,我在网络找了一个试用版的,他的效果是这样的http://www.xmuer.cn/map
看了半天也布知道怎么做的。
#9
madpbpl2007-11-03 00:35

这个利用51ditu提供的免费api,就可以做了,具体方便你可以去51ditu网站看一下,至于搜索就需要你自己动手做了。

#10
xmuer2007-11-03 00:41
如果要自己做呢,有没有什么源码可以参考~
#11
madpbpl2007-11-03 00:48

给你举个简单的例子
[CODE]<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>JavaScript Maps API</title>
<script language="javascript" src=" http://api.51ditu.com/js/maps.js "></script>
<script language="javascript" src="http://api.51ditu.com/js/ezmarker.js"></script>

</head>
<body>
<div id="myMap" style="position:relative; width:400px; height:300px;"></div>
<script language="javascript">
var marked=false;
//在标注被标点或者自动初始化的时候设置提示文字
function onMarker()
{
document.getElementById("markerTips").innerHTML="已经标注位置,点击按钮修改";
marked=true;
}
var ezmarker=new LTEZMarker("ezmarker");
LTEvent.addListener(ezmarker,"mark",onMarker);
</script>
<script language="javascript">
var ltInfoWindow;
var maps = new LTMaps( "myMap" );
maps.cityNameAndZoom( "beijing" , 5 );
var marker1 = new LTMarker( new LTPoint( 11636224 , 3991040 ) );
maps.addOverLay( marker1 );
LTMarker.setInfoWinWidth( 400 );
LTMarker.setInfoWinHeight( 300 );

LTInfoWindow.setTitle("××××有限公司");
LTEvent.addListener( marker1 , "click" , function(){ marker1.openInfoWinHtml( "北宅新村(新盘)<br><hr color='red'>&nbsp;<img src='' width=150 height=180 border=0><br>地址:怀柔区桥梓镇北宅村<br> 价格:起价2750元/平米 均价2900元/平米 最高价3100元/平米<p align=right><a href='upload.asp' target=_blank>详细信息</a>&nbsp;&nbsp; <a href='delete.asp' target=_blank>户型图</a>&nbsp;&nbsp;<a href='delete.asp' target=_blank>业主论坛</a>&nbsp;&nbsp;<a href='delete.asp' target=_blank>周边</a></p> " ) } );
</script>
</body>
</html>[/CODE]

上面的红色是调用的51ditu的api接口,下面的红色数字表示地图的坐标。
51ditu提供了很多api,这里只是用了一个最简单的例子,其他api没有调用
你可以去搜索一下,有很多这方面的例子的。
不过个人感觉51ditu没有google earth好,调用地图有进速度太慢。
5楼我给的网址是别人自己开发的api,把51ditu和google earth结合起来了,这个做的比较强,你可以做个参考。

#12
xmuer2007-11-04 23:08

嗯 我明白各位的意思。
可是我现在碰到一个比较麻烦的问题,我现在要做的是我们学校校园地图查询系统,所以不论是baidu、google、51ditu都没有详细的api可以调用,我所有的只有一张高清晰的5M的校园地图,迷茫啊~
这个是毕设,老师盯的紧啊。。。

[此贴子已经被作者于2007-11-4 23:09:34编辑过]

#13
madpbpl2007-11-05 01:56

个人看法,把校园地图做成热区,要上面标点,做各个标记点的详细介绍,这个来说也不算很难,好好做一下吧,挺有意思的一个项目,其实用GOOGLE EARTH 也可以做的,只要找到你校园的坐标就可以了。你先尝试着去做一下,没有你想像中那么难的。加油!

1