.Net Windows 应用程序 WebBrowser / Google 地图 API v3

2024-01-25

我正在开发一个应用程序,用户可以在其中输入所需的地址,然后按按钮。该地址可以在WebBrowser.net windows 应用程序中的控制。我知道你可以运行 javascriptWebBrowser通过使用WebBrowser1.DocumentText,并通过调用脚本WebBrowser1.Document.InvokeScript ...

我对此有一点问题,我想知道是否有人可以向我展示正确的方法来做到这一点。

CODE:

Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click

  Dim AddressMap As String

  AddressMap = AddressM.Text

  WebBrowser1.DocumentText = "<html><head><meta name='viewport' content='initial-scale=1.0, user-scalable=no' />" & _
    "<script type='text/javascript' src='http://maps.google.com.mx/maps/api/js?sensor=true&language;=es'></script>" & _
    "<script type='text/javascript'>" & _
    "var geocoder; var map;" & _
    "function initialize() " & _
    "{geocoder = new google.maps.Geocoder(); var myOptions = { zoom: 16, mapTypeId: google.maps.MapTypeId.ROADMAP()" & _
    "} var(address = " & AddressMap & ")" & _
    "geocoder.geocode({ 'address': address }, function (results, status) {" & _
                    "if (status == google.maps.GeocoderStatus.OK) {" & _
                        "map.setCenter(results[0].geometry.location);" & _
                        "var marker = new google.maps.Marker({" & _
                           " map: map," & _
                            "position: results[0].geometry.location });" & _
                    "} else {" & _
                    "}});" & _
     "map = new google.maps.Map(document.getElementById('map_canvas'), myOptions);}" & _
     "</script></head><div id='map_canvas' style='width:100%; height:100%'></div></body></html>"

   WebBrowser1.Document.InvokeScript("Initialize")

End Sub

下面是我认为应该有效的另一段代码,但我仍然收到脚本错误“此页面上的脚本中发生错误”第 1 行 CHAR 124 错误预期 ';'代码 0 URL about.blank

 WebBrowser1.DocumentText = "<html><head><script type='text/javascript' src='http://maps.google.com.mx/maps/api/js?sensor=false&language;=es'></script> " +
                           "<script type='text/javascript'> " +
                           "var geocoder; " +
                           "var map; " +
                           "function initialize(address) { " +
                           "geocoder = new google.maps.Geocoder(); " +
                           "var myOptions = { zoom: 16 } " +
                           "geocoder.geocode({ 'address': address }, function (results, status) { map.setCenter(results[0].geometry.location); " +
                           "var marker = new google.maps.Marker({ map: map, position: results[0].geometry.location }); " +
                           "map = new google.maps.Map(document.getElementById('map_canvas'), myOptions); " +
                           "} " +
                           "</script> " +
                           "</head> " +
                           "<body> <div id='map_canvas' style='width:100%; height:100%'></div> </body> </html>"

WebBrowser1.Document.InvokeScript("initialize", New String() {AddressM.Text})

我非常感谢你的帮助

Leo P.

这是另一段与前两段稍有不同的代码,它包含从实际运行谷歌地图脚本的 html 中提取的 if else 语句。

WebBrowser1.DocumentText = "<html><head><script type='text/javascript' src='http://maps.google.com.mx/maps/api/js?sensor=false&language;=es'></script> " +
                       "<script type='text/javascript'> " +
                       "var geocoder; " +
                       "var map; " +
                       "function initialize() { " +
                       "geocoder = new google.maps.Geocoder(); " +
                       "var myOptions = { zoom: 16, mapTypeId: google.maps.MapTypeId.ROADMAP } " +
                       "var(address = 'Miami Beach, Flordia') " +
                       "geocoder.geocode({ 'address': address }, " +
                       "function (results, status) { " +
                       "if (status == google.maps.GeocoderStatus.OK) { map.setCenter(results[0].geometry.location); " +
                       "var marker = new google.maps.Marker({ map: map, position: results[0].geometry.location }); " +
                       "} else { alert('Geocode was not successful !);}}); " +
                       "map = new google.maps.Map(document.getElementById('map_canvas'), myOptions); } " +
                       "</script> " +
                       "</head> " +
                       "<body> <div id='map_canvas' style='width:100%; height:100%'></div> </body> </html>"

        WebBrowser1.Document.InvokeScript("initialize")

下面的html代码

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<meta name="viewport" content="initial-scale=1.0, user-scalable=no" />

<script type="text/javascript" src="http://maps.google.com.mx/maps/api/js?sensor=true&language=es"></script>
<script type="text/javascript">

    var geocoder;
    var map;


    function initialize() {

        geocoder = new google.maps.Geocoder();

        var myOptions = {
            zoom: 16,
            mapTypeId: google.maps.MapTypeId.ROADMAP
        }

        //var address = document.getElementById("address").value;
        var address = "Miami Beach, Flordia" //change the address in order to search the google maps

        geocoder.geocode({ 'address': address }, function (results, status) {
            if (status == google.maps.GeocoderStatus.OK) {
                map.setCenter(results[0].geometry.location);
                var marker = new google.maps.Marker({
                    map: map,
                    position: results[0].geometry.location
                });
            } else {
                alert("Geocode was not successful for the following reason: " + status);
            }
        });

        map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);
    }


    </script>
  </head>
  <body onload="initialize()">
    <div id="map_canvas" style="width:100%; height:100%"></div>

  </body>
</html>

推杆溶液

HTML

在 C:\page.html 中创建页面 html 并使用此代码

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<meta name="viewport" content="initial-scale=1.0, user-scalable=no" />

<script type="text/javascript" src="http://maps.google.com.mx/maps/api/js?sensor=true&language=es"></script>
<script type="text/javascript">

    var geocoder;
    var map;


    function initialize(address) {

        geocoder = new google.maps.Geocoder();

        var myOptions = {
            zoom: 16,
            mapTypeId: google.maps.MapTypeId.ROADMAP
        }

        geocoder.geocode({ 'address': (address ? address : "Miami Beach, Flordia")}, function (results, status) {
            if (status == google.maps.GeocoderStatus.OK) {
                map.setCenter(results[0].geometry.location);
                var marker = new google.maps.Marker({
                    map: map,
                    position: results[0].geometry.location
                });
            } else {
                alert("Geocode was not successful for the following reason: " + status);
            }
        });

        map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);
    }


    </script>
  </head>
  <body onload="initialize()">
    <div id="map_canvas" style="width:100%; height:100%"></div>

  </body>
</html>

Windows 窗体 - C#

private void Form1_Load(object sender, EventArgs e)
{
    // Put uri (http://www.example.com/page.html and c:\page.html is valid address)
    webBrowser1.Url = new Uri(@"C:\page.html");
}

private void button1_Click(object sender, EventArgs e)
{
    webBrowser1.Document.InvokeScript("initialize", 
            new string[] { textBox1.Text });
}

并需要具有以下名称的组件的表单:textBox1, button1 and webBrowser1.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

.Net Windows 应用程序 WebBrowser / Google 地图 API v3 的相关文章

  • 如何使用 Playwright 使用选择器查找框架 (iframe)

    我有一个小问题 无法找到使用 Microsoft Playwright 框架的答案 根据您可以使用以下代码获取 iframe const frame page frame frame login 但是如何使用选择器来查找 iframe 并与
  • 为什么 Visual Studio 在临时文件夹中生成以下文件 .NETFramework,Version=v4.5.AssemblyAttributes.cs

    为什么 Visual Studio 会生成以下文件 NETFramework Version v4 5 AssemblyAttributes cs在临时文件夹中C Users USERNAME AppData Local Temp构建解决方
  • c#.NET 和 sprintf 语法

    这段代码如何翻译成 C 具体来说是如何sprintf用C 实现 string output The user s logged in string loggedIn is string loggedOut isn t if TheUser
  • “你好世界!!”在 .NET 4 中生成 3500 个页面错误

    我正在运行 Windows Vista 和 Visual Studio 2010 使用 NET 4 2 GB RAM 和大约 800 MB 可用空间 我创建了一个 Windows 窗体应用程序 但没有向其中添加任何代码 只需在发布模式下编译
  • 如何在React Native Android中获取响应头?

    您好 我想在获取 POST 请求后获取响应标头 我尝试调试看看里面有什么response with console log response 我可以从以下位置获取响应机构responseData但我不知道如何获取标题 我想同时获得标题和正文
  • ReactTransitionGroup 不适用于 React-redux 连接组件

    我正在开发一个更大的项目 但我创建了这个简短的示例来说明问题 如果我使用Box组件 它的工作原理 它在控制台中输出componentWillEnter and componentWillLeave当我们点击按钮时 如果我使用BoxConta
  • javascript 选择自定义光标 (svg)

    我正在动态地将光标更改为悬停时的本地 svg element on mouseover function this css cursor url svgs pointer svg 9 30 auto 工作正常 但我想选择该 svg 来操纵其
  • React Router v4 不渲染组件

    React Router v4 渲染组件存在问题 在应用程序初始加载时 它将呈现与 URL 相对应的正确组件 但是 任何后续的组件Link单击不会呈现所需的组件 图书馆 反应路由器 4 2 2 https reacttraining com
  • 从经典 ASP 调用 .Net C# DLL 方法

    我正在开发一个经典的 asp 项目 该项目需要将字符串发送到 DLL DLL 会将其序列化并发送到 Zebra 热敏打印机 我已经构建了我的 DLL 并使用它注册了regasm其次是 代码库这使得 IIS 能够识别它 虽然我可以设置我的对象
  • 用于 FTP 的文件系统观察器

    我怎样才能实现FileSystemWatcherFTP 位置 在 C 中 这个想法是 每当 FTP 位置添加任何内容时 我都希望将其复制到我的本地计算机 任何想法都会有所帮助 这是我之前问题的后续使用 NET 进行选择性 FTP 下载 ht
  • 如何正确取消引用然后删除 JavaScript 对象?

    我想知道从内存中完全取消引用 JavaScript 对象的正确方法 确保删除时不会在内存中悬空 并且垃圾收集器会删除该对象 当我看这个问题时在 JavaScript 中删除对象 https stackoverflow com questio
  • 如何使用 JavaScript 或 jQuery 克隆 HTML 元素的样式对象?

    我正在尝试克隆元素的样式对象 这应该允许我在更改后重置所述元素的样式 例如 el style left 50px curr style left 50px Modify the elements style The cloned style
  • 使用javascript动态更新css内容

    需要将 css 更新为动态值 我不确定最好的方法是什么 div style zoom 1 div 缩放级别将根据窗口大小调整触发 应用程序将相应缩放 我将此应用程序加载到 cordova 中并让它在 iPAD 中运行 然后我意识到需要使用
  • 如何在 Android 中使用 C# 生成的 RSA 公钥?

    我想在无法假定 HTTPS 可用的情况下确保 Android 应用程序和 C ASP NET 服务器之间的消息隐私 我想使用 RSA 来加密 Android 设备首次联系服务器时传输的对称密钥 RSA密钥对已在服务器上生成 私钥保存在服务器
  • 在 iOS 7 Safari 中,如何区分通过边缘滑动与后退/前进按钮的 popstate 事件?

    在 iOS 7 Safari 中 现在有两种后退 前进导航方式 使用底部的传统后退 前进按钮箭头或从屏幕边缘滑动 我正在使用动画在 ajax 应用程序中的页面之间进行转换 但如果用户通过边缘滑动进行导航 我不想触发该转换 因为这本身就是一个
  • 滚动顶部不符合预期

    Note 由于上次忘记奖励而重新开放赏金 A Woff 大师已经给出答案 我想在用户展开某一行时到达该行 这样当最后一个可见行展开时 用户不必向下滚动即可查看内容 I used example tbody on click td green
  • 如何从 json 文件创建模型? (ExtJS)

    这是我想使用 json 文件创建的模型 Ext define Users extend Ext data Model fields name user id type int name user name type string 为了根据服
  • 将数组从 jquery ajax 传递到代码后面

    我必须将二维数组传递给在asp net网页代码后面编写的页面方法我有一个变量objList作为二维数组 我使用以下代码来实现此目的 但没有成功 并且未调用页面方法 脚本语言 function BindTable objList ajax u
  • 仅当显式选择行时才关闭 ui-bootstrap typeahead

    我创建了这个jsBin http jsbin com livuqafe 2 edit来证明我遇到的问题 如果您转到此处 请尝试输入 五 并继续 你的自然反应是输入 五 然后按 Tab 如果你想要 五百 你可以向下箭头一次 但是 在这种情况下
  • 如何通过索引访问 JSON 对象中的字段

    我知道这不是最好的方法 但我别无选择 我必须通过索引访问 JSONObject 中的项目 访问对象的标准方法是只写this objectName or this objectName 我还找到了一种获取 json 对象内所有字段的方法 fo

随机推荐

  • 用诗歌管理 git 子模块的依赖关系

    我们有一个存储库app lib它在其他 4 个存储库中用作子模块 并且在每个存储库中我都必须添加子模块的所有依赖项 因此 如果我添加 删除依赖项app lib我必须调整所有其他存储库 我有办法告诉 Poetry 安装根存储库依赖项和子模块中
  • 使用 jQuery 选择 id 中带有百分号 (%) 的元素

    我有一个这样的元素 a href hello a 我一直在拼命尝试用 jQuery 选择它 但不能 我试过了 a my id obviously won t work a my id no such luck a my 20id unrec
  • MYSQL触发器更新复制整行

    我正在尝试创建一个触发器来将整行复制到任何UPDATE 我有2张桌子 Frequencies and Frequencies Audit 这是我的触发器 create trigger auditlog before update on fr
  • 通过 VueJS 2 重用模态

    我在 JSFiddle 使用 Vue 版本 1 中看到了重用模式 https jsfiddle net kemar d3jecL8n https jsfiddle net kemar d3jecL8n 但是当我换成Vue 2版本时 就不行了
  • GNUPLOT:从平滑累积中保存数据

    我绘制了实数均匀随机分布 n 1000 的简单累积和直方图 http www filedropper com random1 1 http www filedropper com random1 1 随机1天 宏是 unset key cl
  • React 组件是否会深入比较 props 以检查是否需要重新渲染?

    我想知道 React 组件是否扩展React Component在尝试决定是否需要重新渲染时对对象进行深入比较 例如 给定 const Foo bar gt return div bar baz div class App extends
  • Titanium Desktop 中的 SVG?

    我正在运行 Titanium Desktop 1 1 0 SDK 并且只有我的 SVG 文本元素可以正确呈现 SVG 方法 例如 getBBox 会给出错误消息 该应用程序在 Titanium 环境之外运行良好 即 Chrome Firef
  • 支持可选参数和.Net 4.0的C#模拟框架

    是否存在完全支持 Net 4 0 和 C 的 C 模拟框架 具体来说 我正在寻找它支持可选参数 我能够通过编写一个扩展方法来让 Moq 来处理这个问题 该方法接受方法名称以及参数名称和值的字典 did想要指定 并且扩展方法为您未指定的所有参
  • Docker Compose + Rails:迁移的最佳实践?

    我刚刚关注了这篇文章在 Docker 中运行 Rails 开发环境 https blog codeship com running rails development environment docker 好文章 效果很好 设置完所有内容后
  • 离子启动给出错误:生成的命令有错误:npminstall

    我正在尝试使用 ionic 和 cordova 创建一个移动应用程序 但是当我启动命令时 ionic start appname blank 下载后 npm 给我 Error with start undefined Error Initi
  • ActionBarSherlock 4.2 是否支持 SearchView 的搜索建议?

    一个月前 我将 ActionBarSherlock 4 2 添加到我的项目中 除了我的搜索建议之外 一切都正常工作了SearchView 我创建搜索建议的方式是使用Android文档中的方法 http developer android c
  • Windows Phone 7.1“发送到”功能?

    我被要求用 C 为 Windows Phone 7 1 编写一个原型应用程序 该应用程序可以通过 Android 的 共享 功能等功能获取数据 然后处理这些数据 例如 用户打开邮件应用程序并查看 PDF 附件 对于此附件 他按下应用程序的
  • 出现错误:部署到 heroku 时必须至少安装一个 postgresql-client-

    sdilshod sdilshod Lenovo B590 webapp saturn heroku run rake db migrate Running rake db migrate attached to terminal up r
  • mpi4py 中的共享内存

    I use a MPI mpi4py 脚本 在单个节点上 适用于非常大的对象 为了让所有进程都能访问该对象 我通过comm bcast 这会将对象复制到所有进程并消耗大量内存 尤其是在复制过程中 因此 我想分享一些像指针这样的东西 而不是对
  • 迭代 hastable 键的枚举会引发 NoSuchElementException 错误

    我正在尝试使用枚举来迭代哈希表中的键列表 但是我在列表中的最后一个键处不断收到 NoSuchElementException Hashtable
  • ListBox 中的 DataTextField 是 2 个字段的组合

    我有一个包含用户的列表框 数据源是 User 类型的通用列表 包含 id firstname lastname 现在我想使用 id 作为数据值 通过 dataValueField 并且我想要 LastName Firstname 作为 Da
  • 为什么在图像和 CSS 文件之后查询字符串?

    我在各个网站上看到过一个查询字符串 后面跟着一个图像和 CSS 文件的数字 当我查看源代码 通过 Chrome Developer 时 缓存的 css 文件和图像的名称中没有查询字符串中的数字 我还在网站上看到 当我刷新页面时 查询字符串中
  • 从可迭代的乘积中创建 Pandas MultiIndex?

    当我有两个或多个可迭代对象时 我有一个实用程序函数用于创建 Pandas MultiIndex 并且我想要为这些可迭代对象中的值的每个唯一配对提供一个索引键 看起来像这样 import pandas as pd import itertoo
  • 在javascript中将字符串数组转换为名称/值对象

    我目前正在处理一个向客户端返回字符串数组的 Web 服务 从这里我想获取这个字符串数组并将其转换为一个对象 该对象为每个字符串提供一个名称 以便稍后引用它 所以从这个开始 var result test hello goodbye 我想以此
  • .Net Windows 应用程序 WebBrowser / Google 地图 API v3

    我正在开发一个应用程序 用户可以在其中输入所需的地址 然后按按钮 该地址可以在WebBrowser net windows 应用程序中的控制 我知道你可以运行 javascriptWebBrowser通过使用WebBrowser1 Docu