首页 / 浏览问题 / 云GIS / 问题详情
iserver地图调用时使用公网的url格式地图显示不出来
3EXP 2024年09月05日
 // 定义iserver地图URL数组
 var host = window.isLocal ? window.server : 'https://iserver.supermap.io';
 console.log(host);
 var mapUrls = [
  host +'/iserver/services/map-Qin/rest/maps/Qin?prjCoordSys=%7B%22epsgCode%22:3857%7D',
  host +'/iserver/services/map-Qin-2/rest/maps/XiHan?prjCoordSys=%7B%22epsgCode%22:3857%7D',
  host +'/iserver/services/map-Qin-2/rest/maps/DongHan?prjCoordSys=%7B%22epsgCode%22:3857%7D',
  host +'/iserver/services/map-Qin-2/rest/maps/SanGuo?prjCoordSys=%7B%22epsgCode%22:3857%7D',
  host +'/iserver/services/map-Qin-2/rest/maps/Jin?prjCoordSys=%7B%22epsgCode%22:3857%7D',
  host +'/iserver/services/map-Qin-2/rest/maps/Sui?prjCoordSys=%7B%22epsgCode%22:3857%7D'
];

 这是我的调用语句 后台报错404

1个回答

您好,https://iserver.supermap.io/iserver/services   公网里并没有您调用的map-Qin服务,您自己iserver发布的服务调用时,window.isLocal ? window.server : 应该填您自己本地的iserver地址,或者mapUrls直接填完整的地图服务地址,例如:

var mapUrls = 'http://localhost:8090/iserver/services/map-world/rest/maps/World';

希望能够帮助到您!

1,075EXP 2024年09月05日
我使用localhost:8090可以在本地端调用,但要如何实现在其他客户端也能调用呢
要确保其他客户端电脑与部署iserver的电脑之间ip互通,ip互通需要您自己将服务部署在公网、或搭建使用局域网、或使用vpn内网穿透等。
请问如何将服务部署在公网?
1、首先您得有一个具有公网ip的服务器,并且路由器正确配置端口转发,将外部访问的端口(如HTTP的8090端口或HTTPS的8443端口)转发到您的iServer服务器的内网IP地址。

2、设置防火墙允许外部访问配置的端口。

3、更新服务URL为公网IP和端口

4、在外部网络使用公网IP和端口测试iServer服务是否可以正确访问。
...