|
发表帖子
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>
|
|