作者:卞功鑫  ,转载请保留。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 显示地图的更多相关文章

  1. Google Maps API显示地图的小示例

    来源:http://www.ido321.com/1089.html 效果(新版Firefox中测试): 代码: <!DOCTYPE> <html> <head> ...

  2. Swift - 使用MapKit显示地图,并在地图上做标记

    通过使用MapKit可以将地图嵌入到视图中,MapKit框架除了可以显示地图,还支持在地图上做标记. 1,通过mapType属性,可以设置地图的显示类型 MKMapType.Standard :标准地 ...

  3. 转载-SharePoint 2010 WebPart与Google地图系列 一:创建显示地图的WebPart

    [原] SharePoint 2010 WebPart与Google地图系列 一:创建显示地图的WebPart 摘要: 作为信息化先驱的产品SharePoint 2010竟然对GIS相关技术支持如此有 ...

  4. openlayers一:显示地图与鼠标地理坐标

    openlayers两个好用的开源JS互动地图库之一,另一个是leaflet. openlayers的特点是是大而全,自身包含绝大多数功能,文档好看. leaflet是小而美,自身小,但支持扩展,好用 ...

  5. 百度地图api通过地址显示地图,白名单

    百度地图api通过地址显示地图,白名单 http://developer.baidu.com/map/jsdemo.htm#i7_1?qq-pf-to=pcqq.c2c---------------- ...

  6. (android 地图实战开发)2 创建MapActivity,根据设备当前位置,显示地图

    (android 地图实战开发)2 创建MapActivity,根据设备当前位置,显示地图 http://www.cnblogs.com/macroxu-1982/archive/2011/09/13 ...

  7. android菜鸟学习笔记30----Android使用百度地图API(一)准备工作及在应用中显示地图

    1.准备工作: 百度地图API是免费开放的,但是需要申请API Key: 1)先注册一个百度开发者帐号 2)进入百度开放服务平台http://developer.baidu.com/ 3)进入LBS云 ...

  8. 百度地图设置div样式宽高为百分比不显示地图

    如题,不显示地图只要在样式代码里面加以 position:absolute; 代码就可以了 <style type="text/css"> body, html,#al ...

  9. 【Silverlight】Bing Maps学习系列(二):通过Bing Maps Silverlight Control如何显示地图(转)

    [Silverlight]Bing Maps学习系列(二):通过Bing Maps Silverlight Control如何显示地图 如本系列第一篇你所介绍的,开发基于Silverlight的Bin ...

随机推荐

  1. 使用架构(XSD)验证XML文件

    假使说XML是一个数据库,那么XSD就是这个数据库的结构.由此可见,XSD是如此重要,如果没有它,我们如何声明以及验证我们需要的XML数据文件的格式和合法性呢?那是不可能完成的任务,如果你将XML数据 ...

  2. Dom之表单提交与默认行为

    一.button提交表单 <!DOCTYPE html> <html lang="en"> <head> <meta charset=&q ...

  3. JAVA包命名规范

    学习Java的童鞋们都知道,Java的包.类.接口.方法.变量.常量:JavaEE的三层模型等都有一套约定俗成的命名规则. 我学习每种语言都会关注相应的命名规则,一则体现自己比较专业:二来方便后检查, ...

  4. Ext JS 5的声明式事件监听

    在前文<在Ext JS 5使用ViewControllers>中,简单的介绍了Ext JS 5的一项重要改进——声明式事件监听.在本文,将深度探讨如何使用声明式事件监听啦简化应用程序的视图 ...

  5. git tag知多少

    这个命令,其实很有用,类似clearcase中的label,就是给一个版本设置一个标记(标签),方便后期查找特定的版本. tag和commit的sha1那串字符串的关系,不是很大,但是还是要说一下的. ...

  6. centos 安装sphinx

    官网下载 :http://sphinxsearch.com/downloads/sphinx-2.2.10-release.tar.gz/thankyou.html 安装sphinx 解压 tar z ...

  7. 【JdbcTemplete】JdbcTemplete代码详解--模板方法详解

    JdbcTemplete类层次结构 JdbcAccessor:对DataSource数据源进行管理和配置: JdbcOperations:定义了通过JDBC操作数据库的基本操作方法: JdbcTemp ...

  8. Redis性能测试工具benchmark简介

    Redis自己提供了一个性能测试工具redis-benchmark.redis-benchmark可以模拟N个机器,同时发送M个请求. 用法:redis-benchmark [-h -h <ho ...

  9. boa配置文件详解

    Web服务器boa配置文件参数说明 boa的配置文件是/etc/boa/boa.conf.Port:boa服务器监听的端口,默认的端口是80.如果端口小于1024,则必须是  root用户启动服务器. ...

  10. asp.net和脚本获取当前的URL、IP地址

    介绍一下ASP.NET取得当前页面的完整URL 的方放,icech做成了函数,直接用吧! private string GetPath() { string strPath = "http: ...