小李SEO博客

网站优化服务

帝国CMS添加百度地图标注方法

给帝国CMS任意模型加上百度地图标注功能。

1.jpg

1.jpg

第一步:首先在模型建立三个字段:
字段名:map_x 字段类型:DOUBLE
字段名:map_y 字段类型:DOUBLE
字段名:map_z 字段类型:TINYINT 最好设置个默认值13 14左右,是调整缩放级别的
系统模型该选的都选上,比如录入项、投稿项、可增加、可修改、内容模版。

第二步:修改系统模型表单模版

把这三个字段的代码删除改成:

<tr><td width=’16%’ height=25 bgcolor=’ffffff’>标注地图</td>
<td bgcolor=’ffffff’><a href=”javascript:void(0)” onclick=”showOrHide(1)”>点击地图标注</a></td></tr>

然后在底部添加以下代码:

<style>
.belowdiv{
display: none;
position: absolute;
top: 0%;
left: 0%;
width: 100% !important; width:100%;
height: 100% !important; _height:1024px;
background-color: gray;
filter:alpha(opacity=20); opacity:0.2;
z-index:1001;
}
.topdiv {
display: none;
position: absolute;
top: 25%;
left: 25%;
width: 582px;
height: 450px;
padding: 16px;
border-top:solid,16px,red;
border-left:1px;
border-right:1px;
border-bottom:1px;
background-color: white;
z-index:1002;
overflow: auto;
}
</style>
<script type="text/javascript">
function showOrHide(flag) {
if(flag == 1) {
document.getElementById("top").style.display = "block";
document.getElementById("below").style.display = "block";
}
if(flag == 2) {
document.getElementById("top").style.display = "none";
document.getElementById("below").style.display = "none";
}
}
</script>
<div id="top" class="topdiv">
当前坐标:[!--map_x--] – [!--map_y--] 缩放:[!--map_z--] &nbsp;&nbsp;<a href = "javascript:void(0)" onclick = "showOrHide(2)">提交</a>
<div style="width:520px;height:340px;border:1px solid gray" id="container">
</div>
<script type="text/javascript" src="https://api.map.baidu.com/api?v=1.2"></script>

<script type="text/javascript">
var map = new BMap.Map("container");
var point = new BMap.Point(115.449106, 38.887932); //初始位置,我这个是保定可能是css原因,这个坐标位置偏移一点
map.addControl(new BMap.NavigationControl()); //鱼骨控件显示
map.enableScrollWheelZoom();
map.centerAndZoom(point, 14); //初始缩放级别
// 获取经度 纬度
map.addEventListener("click", function(e){
document.getElementById("map_x").value=e.point.lng;
document.getElementById("map_y").value=e.point.lat;
//下面这行是点击提示语,需要可以去掉 "//"
// alert("系统已记录您标注的位置坐标");

});
// 获取缩放
map.addEventListener("zoomend", function(){
document.getElementById("map_z").value=this.getZoom();
});
// 设置个默认点,移动这个图标也可以获得坐标。不想要也可以删除
var point = new BMap.Point(115.487362, 38.868383); // 默认标注图标位置
var marker = new BMap.Marker(point); // 创建标注
map.addOverlay(marker); // 将标注添加到地图中

var opts = {
width : 250, // 信息窗口宽度
height: 100, // 信息窗口高度
title : "温馨提示" // 信息窗口标题
}
var infoWindow = new BMap.InfoWindow("您可以移动此图标到您所在位置或点击您所在的位置,系统会自动获得坐标", opts); // 创建信息窗口对象

marker.addEventListener("click", function(){
this.openInfoWindow(infoWindow);
});
// 移动获取坐标
marker.enableDragging();
marker.addEventListener("dragend", function(e){
document.getElementById("map_x").value=e.point.lng; //移动中心点改变坐标
document.getElementById("map_y").value=e.point.lat;
//下面这行是移动坐标提示语,需要可以去掉 "//"
// alert("系统已记录您当前位置坐标:" + e.point.lng + ", " + e.point.lat + "");
});

</script>

</div>

<div id="below" class="belowdiv"></div>

这样就可以把坐标和缩放级别存储于数据库了

第三步:内容页模板中调用:


<script type=”text/javascript” src=”https://api.map.baidu.com/api?v=1.2″></script>
<div style=”width:520px;height:340px;border:1px solid gray” id=”container”></div>
<script type=”text/javascript”>
var sContent =
“<h4 style=’margin:0 0 5px 0;padding:0.2em 0′>[!--title--]</h4>” +
“<img style=’float:right;margin:4px’ id=’imgDemo’ src=’[!--titlepic--]‘ width=’139′ height=’104′ title=’[!--title--]‘/>” +
“<p style=’margin:0;line-height:1.5;font-size:13px;text-indent:2em;width:320px;’>[!--smalltext--]…</p>” +
“</div>”;
var map = new BMap.Map(“container”);
var point = new BMap.Point([!--map_x--], [!--map_y--]);
var marker = new BMap.Marker(point);
var infoWindow = new BMap.InfoWindow(sContent); // 创建信息窗口对象

map.centerAndZoom(point, [!--map_z--]);
map.addOverlay(marker);

marker.addEventListener(“click”, function(){
this.openInfoWindow(infoWindow);
//图片加载完毕重绘infowindow
document.getElementById(‘imgDemo’).onload = function (){
infoWindow.redraw();
}
});
</script>

至此,地图标注功能便做好了。

上一篇:帝国CMS灵动标签调用日期时间 下一篇:帝国CMS虚拟主机伪静态设置.htaccess
相关帝国cms文章阅读
  • 帝国CMS会员中心首页调用各系统模型的内容SQL

    帝国的会员中心比较丑,关键是没模板化,很多朋友估计不懂修改 现在教大家如何利用灵动标签在帝国的会员中心首页如何调用各系统模型的内容: 修改空间首页模板e/space/template/default/inde...

  • 帝国CMS灵动标签调用友情链接

    帝国CMS默认的友情链接标签内置的格式太坑爹了,无法满足个性化需求。 可使用灵动标签来调用: 调用文字链接: [e:loop={'select*from[!db.pre!]enewslinkwherechecked=1andclassid=1orderbylid',20,24,0}]ahref=?=$b...

  • 帝国CMS会员退出后跳转到指定地址

    帝国CMS会员退出后默认是跳转到网站首页,但有些时候 ,希望能跳转到指定地址,如跳转到会员登录页。 教程开始: 打开 /e/member/class/member_loginfun.php 查找: $gotourl=../../; 修改成: $gotourl=/e...

  • 帝国CMS7.5编辑器换行,如何将<br>换成<p>

    第一个在:/e/admin/ecmseditor/infoeditor/config.js; 第二个在:/e/admin/ecmseditor/tempeditor/config.js; 第三个在:/e/data/ecmseditor/infoeditor/config.js; 你要把这三个文件里面的: config.enterMode = CKEDITOR.ENTER_BR; confi...

  • 帝国cms跨域上传支持定义返回字段和扩展名插件

    小李网络公司介绍帝国cms跨域上传支持定义返回字段和扩展名插件知识,包括跨域是什么帕提亚帝国cors跨域帝国霸主帝国的崛起跨域处理nginx跨域为什么要跨域允许跨域跨域ajax跨域什么意思js跨...

  • 帝国CMS灵动标签调用标题图片没有图片时显示默认图片

    使用灵动标签调用信息标题图片,但有时候如果没有标题图片,显示图片的位置就会是空白的影响美观。 使用以下灵动标签调用可实现当不存在标题图片的时候显示默认图片: src=?=$bqr[titlep...

  • 帝国CMS给自定义反馈信息表单增加验证码

    在创建反馈表单时可以加上验证码功能。 第一步,需要开启反馈验证码功能。 系统参数设置-信息设置 里开启 第二步:在反馈表单中添加验证码: input name=key type=text size=6 img src=!---news.url--]...

  • 帝国CMS验证码显示重复的解决办法

    因为PHP4.2以后都不需要mt_srand播种,所以只要把这个禁用就可以了。 方法,打开前台验证码文件e/showkey/index.php 找到27行代码 mt_srand((double)microtime()*1000000); 将其注释掉或删除即可。 后台验证码...

  • 帝国cms个性导航自定义收藏网址功能介绍

    小李网络公司介绍帝国cms个性导航自定义收藏网址功能介绍知识,包括网址创建自定义网址怎样设置我的自定义帝国自定义网址链接帝国时代2自定义战役自建帝国怎么自己设置网址网址自定义...

  • 帝国CMS播放字段onlinepath添加自动“第N集”播放名称的方法

    效果如下: 打开:帝国后台--系统--数据表和系统模型--管理数据表,找到你要修改的数据表,点 管理字段 打开如下图:找到onlinepath 字段:点修改 替换代码到如下图的地方:(代码文章底部...

  • 帝国CMS按小时发布文章数的统计(详细说明)

    按照小时显示更新数量 用sql调用 6小时:?=$empire-gettotal(select count(*) as total from {$dbtbpre}ecms_表 where newstimeUNIX_TIMESTAMP()-6*3600)? 12小时:?=$empire-gettotal(select count(*) as total from {$dbtbpre}ecms_表 where news...

  • 帝国cms一句js实现列表页或者内容页当前栏目高亮

    无需程序代码支持,只要一段JS代码就行了。 首先,先加载JQ文件, 然后,在页面调用以下JS代码即可: script$(function(){$(a[href=+window.location.pathname+window.location.search]).addClass(hover);})/scrtipstylea.h...

SEO公司排名
 
QQ在线咨询
SEM竞价推广
137-1296-7640
SEO优化外包
137-1296-7640