首页 > 解决方案 > 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>

标签: javascripthtml

解决方案


假设你在 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) 存在同样的问题

这使它在我的机器上工作,我遇到了同样的问题。


推荐阅读