找回密码
 立即注册

QQ登录

只需一步,快速开始

ToPMonsTeR

注册会员

8

主题

29

帖子

153

积分

注册会员

积分
153
ToPMonsTeR
注册会员   /  发表于:2024-6-16 15:06  /   查看:2279  /  回复:12
30金币
本帖最后由 ToPMonsTeR 于 2024-6-19 11:15 编辑


各位大侠,之前弄了一个百度地图标注点的插件,但是不懂代码,想知道如何可以实现调用单元格数据或表格的数据来生成标记点,以下是原来的代码.


var cell = Forguncy.ForguncyData.pageInfo.pageElementManager.cells.getCellByName("Map");
var map = cell.cellType.map;

//项目经纬度
var marker1 = new BMap.Marker(new BMap.Point(113.483366,22.341467));
var marker2 = new BMap.Marker(new BMap.Point(113.480381,22.349819));
var marker3 = new BMap.Marker(new BMap.Point(113.480372,22.348081));

// 在地图上添加点标记
map.addOverlay(marker1);
map.addOverlay(marker2);
map.addOverlay(marker3);



12 个回复

倒序浏览
AAA努力才幸福
初级会员   /  发表于:2024-6-16 15:16:08
沙发
只要能获取到坐标,用官方的事例稍加修改就能使用。需要注意的是坐标值
回复 使用道具 举报
ToPMonsTeR
注册会员   /  发表于:2024-6-16 15:17:14
板凳
AAA努力才幸福 发表于 2024-6-16 15:16
只要能获取到坐标,用官方的事例稍加修改就能使用。需要注意的是坐标值

你好,之前看过你发的贴,但是我不太会用,怎么可以调用单元格的数据批量添加点?
回复 使用道具 举报
Lay.Li悬赏达人认证 活字格认证
超级版主   /  发表于:2024-6-17 10:31:44
地板
感谢各位大佬的支持~
代码我们也不是很擅长
您现在是要怎样调用单元格里的数据呢。这个代码就是可以获取到单元格中的值的


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 使用道具 举报
ToPMonsTeR
注册会员   /  发表于:2024-6-18 20:20:59
5#
本帖最后由 ToPMonsTeR 于 2024-6-18 20:26 编辑
Lay.Li 发表于 2024-6-17 10:31
感谢各位大佬的支持~
代码我们也不是很擅长
您现在是要怎样调用单元格里的数据呢。这个代码就是可以获 ...


已经解决了,是通过CHAT GPT多次修改后成功的,有几个地方要注意,单元格的名称一定要对应,表的数据类型,还有不能再页面加载时直接调用,不然会出现未加载数据导致出错,另外要填入自己的百度API链接地址,这个demo已经把我自己的链接地址删除了,以下是代码:


// 尝试获取Map单元格对应的Map对象,若为空即忽略。
var mapCell = Forguncy.ForguncyData.pageInfo.pageElementManager.cells.getCellByName("Map");
var map = mapCell ? mapCell.cellType.map : null;

// 如果地图控件存在,则继续执行
if (map) {
    // 从CoordinateCell单元格获取坐标字符串,并按";"分割为坐标对数组
    var coordString = Forguncy.Page.getCell("CoordinateCell1").getValue() || ""; // 确保即使单元格为空也不报错
    var coordPairs = coordString.split(';');

    // 遍历坐标对,添加标记
    coordPairs.forEach(function(pair) {
        // 确保pair非空且格式正确再进行处理
        if (pair) {
            var [longitude, latitude] = pair.split(',').map(parseFloat);
            if (!isNaN(longitude) && !isNaN(latitude)) { // 检查经纬度是否有效
                var marker = new BMap.Marker(new BMap.Point(longitude, latitude));
                map.addOverlay(marker);
            }
        }
    });
} else {
    console.warn("地图控件未找到或未正确初始化,跳过添加标记操作。");
}


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x

评分

参与人数 1金币 +66 收起 理由
Lay.Li + 66 赞一个!

查看全部评分

回复 使用道具 举报
Lay.Li悬赏达人认证 活字格认证
超级版主   /  发表于:2024-6-19 09:34:23
6#
恭喜大佬解决了问题,感谢大佬的热心分享
回复 使用道具 举报
MaQing_
中级会员   /  发表于:2024-7-19 11:55:29
7#
大佬  在你这个demo基础上怎么做每个标注点的 弹窗功能?
回复 使用道具 举报
ToPMonsTeR
注册会员   /  发表于:2024-7-19 11:58:11
8#
MaQing_ 发表于 2024-7-19 11:55
大佬  在你这个demo基础上怎么做每个标注点的 弹窗功能?

什么意思?不太懂。是想点击每一个标注点有弹窗马?
回复 使用道具 举报
MaQing_
中级会员   /  发表于:2024-7-19 12:02:04
9#
ToPMonsTeR 发表于 2024-7-19 11:58
什么意思?不太懂。是想点击每一个标注点有弹窗马?

对 就是点击某一个标注点 然后弹出活字格的页面
回复 使用道具 举报
ToPMonsTeR
注册会员   /  发表于:2024-7-19 12:07:11
10#
这个做起来很麻烦的,这个我当时也想过。包括弹窗文本内容、图片等等都需要独立设置。由于过于负责,我也没有弄好。
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部