CRM IFRAME 显示地图
作者:卞功鑫 ,转载请保留。http://www.cnblogs.com/BinBinGo/p/5274409.html
需要背景:
现在已经有经纬度,需要在地图上显示出来。
环境: CRM 4.0
实现:
1 在CRM创建新tab,添加一个 IFRAME_DT
2 新建一个html网页,可以接收URL的参数,其实主要是经纬度的数值。
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<meta name="viewport" content="initial-scale=1.0, user-scalable=no" />
<style type="text/css">
body, html,#allmap {width: 100%;height: 100%;overflow: hidden;margin:0;}
</style>
<script type="text/javascript" src="http://api.map.baidu.com/api?v=2.0&ak=百度开发key"></script>
<title>ditu</title>
</head>
<body>
<div id="allmap" ></div>
</body>
</html>
<script type="text/javascript"> var x = 119.37661;
var y = 34.66922;
var name ='kanion';
var new_x = GetQueryString("x");
var new_y = GetQueryString("y");
var new_name = GetQueryString("name"); if(new_x!="")
{
x=new_x;
}
if(new_y!="")
{
y=new_y;
}
if(new_name!=""&&new_x!="" &&new_y!="")
{
name=new_name;
} var ggPoint = new BMap.Point(x,y);
var bm = new BMap.Map("allmap");
bm.centerAndZoom(ggPoint, 15);
//bm.panBy(400,300);
bm.addControl(new BMap.NavigationControl());
bm.enableScrollWheelZoom(true);
var convertor = new BMap.Convertor();
var pointArr = [];
pointArr.push(ggPoint);
convertor.translate(pointArr, 1, 5, function(data){
if(data.status === 0) {
var marker = new BMap.Marker(data.points[0]);
bm.addOverlay(marker);
var label = new BMap.Label(name,{offset:new BMap.Size(20,-10)});
marker.setLabel(label); } }); function GetQueryString(name) {
var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i");
var r = window.location.search.substr(1).match(reg);
if (r != null) return (r[2]); return null;
} </script>
showPIO.html
3 在CRM表单 onload事件中使用拼接字符串加入参数。
这里一般应该是加入在ISV里的,但是客户系统中没有找到对应的ISV,但是发现系统中有个webserver的端口,所以把HTML文件放入了 些端口下的文件夹了。
//加载地图
var x = crmForm.all.new_lng.DataValue;
var y = crmForm.all.new_lat.DataValue;
var name = crmForm.all.new_accountid.DataValue[0].name;
document.getElementById("tab1").style.DISPLAY="inline"
//此处很重要,不然地图中心点会在左上角显示
crmForm.all.IFRAME_qddt.src = "http://" + document.URL.split("/")[2] + ":8080/showPIO.html?x=" + x + "&y=" + y + "&name=" + name;
没有什么好说的只是 document.getElementById("tab1").style.DISPLAY="inline" 这个很重要
如果没有上面这句,CRM的tab 只有第一个tab0的style.DISPLAY="inline"
百度地图在初始化的时候,隐藏的 div会导致,地图认为 网页的宽高都为0,所以地图的中心点也为(0,0)。就导致了,地图的中心点显示在了左上角。
所以在绑定showPOI.html网页的时候先,把tab1的style.DISPLAY="inline" 。
如果其它情况下,无法设置 div的属性,可以采取强制偏移的方法试试
var ggPoint = new BMap.Point(x,y);
var bm = new BMap.Map("allmap");
bm.centerAndZoom(ggPoint, 15);
bm.panBy(400,300);//强制偏移
后记: tab 的点击事件,可以通过点击时再绑定网页。
crmForm.all.tab1Tab.onclick = function() {
alert("Tab 1 clicked");
}
本文完。
CRM IFRAME 显示地图的更多相关文章
- Google Maps API显示地图的小示例
来源:http://www.ido321.com/1089.html 效果(新版Firefox中测试): 代码: <!DOCTYPE> <html> <head> ...
- Swift - 使用MapKit显示地图,并在地图上做标记
通过使用MapKit可以将地图嵌入到视图中,MapKit框架除了可以显示地图,还支持在地图上做标记. 1,通过mapType属性,可以设置地图的显示类型 MKMapType.Standard :标准地 ...
- 转载-SharePoint 2010 WebPart与Google地图系列 一:创建显示地图的WebPart
[原] SharePoint 2010 WebPart与Google地图系列 一:创建显示地图的WebPart 摘要: 作为信息化先驱的产品SharePoint 2010竟然对GIS相关技术支持如此有 ...
- openlayers一:显示地图与鼠标地理坐标
openlayers两个好用的开源JS互动地图库之一,另一个是leaflet. openlayers的特点是是大而全,自身包含绝大多数功能,文档好看. leaflet是小而美,自身小,但支持扩展,好用 ...
- 百度地图api通过地址显示地图,白名单
百度地图api通过地址显示地图,白名单 http://developer.baidu.com/map/jsdemo.htm#i7_1?qq-pf-to=pcqq.c2c---------------- ...
- (android 地图实战开发)2 创建MapActivity,根据设备当前位置,显示地图
(android 地图实战开发)2 创建MapActivity,根据设备当前位置,显示地图 http://www.cnblogs.com/macroxu-1982/archive/2011/09/13 ...
- android菜鸟学习笔记30----Android使用百度地图API(一)准备工作及在应用中显示地图
1.准备工作: 百度地图API是免费开放的,但是需要申请API Key: 1)先注册一个百度开发者帐号 2)进入百度开放服务平台http://developer.baidu.com/ 3)进入LBS云 ...
- 百度地图设置div样式宽高为百分比不显示地图
如题,不显示地图只要在样式代码里面加以 position:absolute; 代码就可以了 <style type="text/css"> body, html,#al ...
- 【Silverlight】Bing Maps学习系列(二):通过Bing Maps Silverlight Control如何显示地图(转)
[Silverlight]Bing Maps学习系列(二):通过Bing Maps Silverlight Control如何显示地图 如本系列第一篇你所介绍的,开发基于Silverlight的Bin ...
随机推荐
- openssl数字证书私钥删除私钥密码
解密 openssl rsa -in server.key.org -out server.key
- 未在本地计算机上注册“Microsoft.Jet.OLEDB.4.0
昨天修改了一个工具,编译后本机运行正常,但放到服务器上执行却不行,提示: message:GetOleDbSchemaTable requires an open and available Conn ...
- python数据分析之pandas库的Series应用
一.pandas的数据结构介绍 1. Series 1.1 Series是由一种类似于一维数组的对象,它由一组数据以及一组与之相关的数据索引构成.仅由一组数据可产生最简单的Series. from p ...
- wap图片滚动特效_无css3 元素js脚本编写
手机图片滑动切换,网上有很多这样的例子,但都借助于其他组件,让代码混乱的不行:还有就是用到css3里的 transform:translate(x,y);移动元素,不过发现在不支持css3的设备上马上 ...
- adb failed to start daemon 的解决办法
很多人遇到下面这个问题 * daemon not running. starting it now on port 5037 * ADB server didn't ACK<br>* fa ...
- [原]对Linux环境下任务调度一点认识
我一直以来有一个误解,那就是在终端运行某个程序时,按下Ctrl + D时我误以为就是杀死了这个进程,今天才知道原来不是.比如我利用libevent在Linux环境下写了一个网络监听程序,当启动程序之后 ...
- [Hibernate] - Load and Get
Hibernate中使用session的load(...)和get(...)区别: 1.load()方法是在返回的类被后期调用时,才会去提交SQL查询数据库. 2.get()方法是在调用get()时就 ...
- bzojj1764: [Baltic2009]monument
Description 给一个p*q*r的立方体,它由p*q*r个1*1*1的小立方体构成.每个立方体要么被虫蛀,要么不被.现在郑爽要选出一个a*a*b的立方体(方向任意),使得它没有被虫蛀过,并且4 ...
- java获取url中的参数
获取地址栏中的url中的userName的值 String userName=new String(request.getParameter("userName")); 获取中文的 ...
- TCP中需要了解的东西
1.TCP是一个流协议. TCP跟UDP不一样的是,TCP发送过去的东西是stream,也就是说第一次发送的跟第二次发送的数据包可能会粘在一起,即所谓的粘包问题 http://blog.csdn.ne ...