自2018年10月18日起,高德开发者论坛除车机板块外,其他板块将停止发帖与维护,如您有使用问题请 提交工单 联系我们,感谢您的理解。

查看: 218|回复: 0
打印 上一主题 下一主题

[使用疑问] C# winform调用JS的setCenter接口及传参问题

[复制链接]
最佳答案
0 

1

主题

1

帖子

15

积分

新手上路

Rank: 1

积分
15
跳转到指定楼层
楼主
发表于 2018-1-7 11:36:31 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
发表帖子
API/SDK版本号: 我是PC端模拟
产品: 2D地图
手机型号:
使用接口: setCenter()
    各位大神,小弟最近想通过C#去感受下高德Javascript API的功能实现效果,实验其实很low,就是通过一个button按钮和webbrowser控件来完成。按下button,经度纬度参数会传入test.htm中,二维电子地图的中心点应该改变,从初始的“116.39, 39.9”,变成“111.18,22.22”。
   可无论是setCenter的什么形式,我都试了没变化,参数就没起作用;我以为是winform与JS的交互问题,可其他随便一个function(比如alert、return)都能实现...
   我真的不知道中心点怎么通过外部传参来改变了,希望哪位大神能帮帮我!!!

形式一:
    C# winform:
                    webBrowser1.ObjectForScripting = this;
                    webBrowser1.Navigate("C:\\Users\\mxl\\Documents\\Visual Studio 2010\\Projects\\Project1\\Project1\\test.htm");
           
                    double nLon = 111.18;
                    double nLat  = 22.22;
                    Object[] objArray = new Object[2];
                    objArray[0] = (object)nLon;
                    objArray[1] = (object)nLat ;
                    webBrowser1.Document.InvokeScript("CCenter", objArray);

   JS:
                   <script type ="text/javascript">
                    var map;
                    map = new AMap.Map('container', {
                               resizeEnable: true,
                               center: [116.39, 39.9],
                               zoom: 16
                   });

                    function CCenter(obj) {
                             map.setCenter(obj);
                   }
                   </script>

形式二:
    C# winform:
                    webBrowser1.ObjectForScripting = this;
                    webBrowser1.Navigate("C:\\Users\\mxl\\Documents\\Visual Studio 2010\\Projects\\Project1\\Project1\\test.htm");
           
                    string nLoc = "[111.18, 22.22]";
                    Object[] objArray = new Object[1];
                    objArray[0] = (object)nLoc;
                    webBrowser1.Document.InvokeScript("CCenter", objArray);

   JS:
                   <script type ="text/javascript">
                    var map;
                    map = new AMap.Map('container', {
                               resizeEnable: true,
                               center: [116.39, 39.9],
                               zoom: 16
                   });

                    function CCenter(obj) {
                             map.setCenter(obj);
                   }
                   </script>
   
形式三:
    C# winform:
                    webBrowser1.ObjectForScripting = this;
                    webBrowser1.Navigate("C:\\Users\\mxl\\Documents\\Visual Studio 2010\\Projects\\Project1\\Project1\\test.htm");
           
                    double nLon = 111.18;
                    double nLat  = 22.22;
                    Object[] objArray = new Object[2];
                    objArray[0] = (object)nLon;
                    objArray[1] = (object)nLat ;
                    webBrowser1.Document.InvokeScript("CCenter", objArray);

   JS:
                   <script type ="text/javascript">
                    var map;
                    map = new AMap.Map('container', {
                               resizeEnable: true,
                               center: [116.39, 39.9],
                               zoom: 16
                   });

                    function CCenter(nLon, nLat) {
                           map.setCenter(new AMap.LngLat(nLon, nLat));
                   }
                   </script>
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|小黑屋|高德开发者论坛

Copyright ©2014 高德开发者论坛.All Rights Reserved |京ICP证070711号

意见反馈 常见问题 服务条款 联系我们
快速回复 返回顶部 返回列表