javascript - RTKPLOT 不显示谷歌地图
问题描述
我正在使用 RTKLIB 功能 RTKPLOT。谷歌地图未在其中启用,因为它需要 API 密钥。我在给定的 htm 文件中插入了谷歌地图 API 密钥,但在显示坐标时显示了一个空白屏幕。htm文件的头部分首先是这样的
<script src="http://maps.google.com/maps/api/js?v=3&sensor=false"
type="text/javascript" charset="UTF-8"></script>
<script type="text/javascript">
之后,我将其替换为插入 API 密钥,如下所示。
<script src="http://maps.google.com/maps/api/js?v=3&sensor=false"
->
<script src="http://maps.google.com/maps/api/js?key={XXXXXXXXXXXXXXXXXXXXXXXXXXXXX_XXXXXXXXX}&v=3&sensor=false"
告诉我哪里错了。完整的代码是
<html>
<head>
<title>RTKLIB_GM</title>
<script src="http://maps.google.com/maps/api/js?v=3&sensor=false"
type="text/javascript" charset="UTF-8"></script>
<script type="text/javascript">
var map = null;
var marks = [];
var markh = null;
var markz = 0;
var info = null;
var icon0="http://maps.google.co.jp/mapfiles/ms/icons/red-dot.png";
var icon1="http://maps.google.co.jp/mapfiles/ms/icons/yellow-dot.png";
function init() {
var opt = {
center: new google.maps.LatLng(0,0),
zoom: 2, minZoom: 2,
streetViewControl: false,
mapTypeId: google.maps.MapTypeId.ROADMAP
};
map = new google.maps.Map(document.getElementById("map"),opt);
document.getElementById('state').value='1';
}
function SetView(lat,lon,zoom) {
if (map == null) return;
map.setCenter(new google.maps.LatLng(lat,lon));
map.setZoom(zoom);
}
function SetCent(lat,lon) {
if (map == null) return;
map.setCenter(new google.maps.LatLng(lat,lon));
}
function SetZoom(zoom) {
if (map == null) return;
map.setZoom(zoom);
}
function ClearMark(lat,lon,title) {
for (var i in marks) {
marks[i].setMap(null);
}
marks.length = 0;
markh = null;
}
function AddMark(lat,lon,title,msg) {
var pos = new google.maps.LatLng(lat,lon);
var opt = {map: map, position: pos, title: title, icon: icon1};
var mark = new google.maps.Marker(opt);
if (title == "SOL2") mark.setIcon(icon0);
google.maps.event.addListener(mark,'click',function(event) {
if (info) {info.close();}
info = new google.maps.InfoWindow({content: msg});
info.open(mark.getMap(),mark);
});
marks.push(mark);
}
function PosMark(lat,lon,title) {
for (var i in marks) {
if (marks[i].title==title) {
marks[i].setPosition(new google.maps.LatLng(lat,lon));
break;
}
}
}
function ShowMark(title) {
for (var i in marks) {
if (marks[i].title==title) {
marks[i].setVisible(true);
break;
}
}
}
function HideMark(title) {
for (var i in marks) {
if (marks[i].title==title) {
marks[i].setVisible(false);
break;
}
}
}
</script>
</head>
<body style="margin: 0;"; scroll="no"; onload="init()">
<div id="map" style="height: 100%; width: 100%;"> </div>
<input id="state" type="hidden" value="0">
</body>
</html>
解决方案
假设你在 Windows 上。您需要添加注册密钥才能使软件正常工作。
通过 regedit(注册表编辑器)添加以下 Windows 注册表条目,以将 RTKPlot.exe 上的 WebBrowser 组件作为 IE 11 运行。
- 键:KEY_LOCAL_MACHINE - SOFTWARE - Wow6432Node - Microsoft - Internet Explorer - MAIN - FeatureControl - FEATURE_BROWSER_EMULATION
- 名称:rtkplot.exe
- 类型:REG_DWORD
- 数据:11000(十进制)
http://www.rtklib.com/rtklib_support.htm - NTRIP 浏览器 (srctblbrows.exe) 存在同样的问题
这使它在我的机器上工作,我遇到了同样的问题。
推荐阅读
- bash - IF 语句不执行条件 (bash)
- sql - 从给定的日期时间为每年的月份生成行
- python-3.x - python将一个单位分配给一个值
- reactjs - 根据点击 React-Native 切换内容视图
- git - 通过删除提交从 git repo 历史记录中删除文件是否足够?
- c# - 从 SQL Server 获取简单数据需要很长时间 - .NET
- laravel - 将每个类别的子行(在单个表中)限制并显示为特定数字 - laravel
- python - 用 pandas 中的其他列填充 Nas
- javascript - 我希望我的倒数计时器在两个特定页面上处于活动状态,但它会影响所有页面
- postgresql - 两个不同的 postgres 数据库集群,显示正在复制的相同数据数据库