【发布时间】:2019-01-01 21:39:58
【问题描述】:
我正在尝试使用朴素地图。
我在模拟器中放置了一个 MapContainer 内部的表单组件,但 From 显示空白,其中没有地图。当我单击视口时,只要鼠标按钮保持按下状态,地图就会显示。当我释放它再次消失。
这是一个真正的问题还是模拟器的故障?如果这是一个真正的问题,我做错了什么?
下面是我正在使用的类:
package com.mainsys.zappeion;
import com.codename1.googlemaps.MapContainer;
import com.codename1.maps.Coord;
import com.codename1.ui.Form;
import com.codename1.ui.layouts.BorderLayout;
/**
*
* @author Christoforos
*/
public class ZappeionMap extends com.codename1.ui.Form {
private Form current;
public ZappeionMap() {
super("Ζάππειον", new BorderLayout());
}
@Override
public void show() {
if(current != null){
current.show();
return;
}
final MapContainer cnt = new MapContainer();
this.addComponent(BorderLayout.CENTER, cnt);
cnt.setCameraPosition(new Coord(41.889, -87.622));
super.show();
}
}
/********** 执行 Shai 的回答 ******************/
我将代码更改为 Shai 建议的 show my class now:
package com.mainsys.zappeion;
import com.codename1.googlemaps.MapContainer;
import com.codename1.location.Location;
import com.codename1.location.LocationManager;
import com.codename1.maps.Coord;
import com.codename1.ui.BrowserComponent;
import com.codename1.ui.FontImage;
import com.codename1.ui.Form;
import com.codename1.ui.layouts.BorderLayout;
import com.codename1.ui.plaf.Style;
/**
*
* @author Christoforos
*/
public class ZappeionMap extends com.codename1.ui.Form {
private Form current;
private static final String HTML_API_KEY = "AIzaSyDHlFJK561bQVs0AyBm1M5xWS_YCHNuPfc";
public ZappeionMap() {
super("Ζάππειον", new BorderLayout());
final MapContainer cnt = new MapContainer( HTML_API_KEY );
this.addComponent(BorderLayout.CENTER, cnt);
cnt.setCameraPosition(new Coord(41.889, -87.622));
}
}
它仍然有同样的问题。屏幕是空白的。地图只在我点击屏幕时显示。
我还注意到其他事情。在调试器上,我收到消息:
WARNING: Apple will no longer accept http URL connections from applications you tried to connect to http://tile.openstreetmap.org/4/2/9.png to learn more check out https://www.codenameone.com/blog/ios-http-urls.html
为什么它试图连接到http://tile.openstreetmao.org。它应该适用于谷歌地图而不是开放街道地图。
还有一个信息,也许它是值得的。我在真实设备上测试它。屏幕仍然在闪烁,但是当我触摸屏幕时它不会显示任何想法,而模拟器则相反,当我单击屏幕时会出现地图。
我在 centos 7 上使用 netbeans 8.2
感谢任何帮助。
谢谢克里斯托弗罗斯。
【问题讨论】:
-
您在没有 JavaScript 密钥的情况下构建了地图以访问谷歌地图。我建议再次查看这里的步骤:codenameone.com/blog/new-improved-native-google-maps.html
-
@ShaiAlmog 我更改了我的代码,正如您在上次编辑中看到的那样。我使用 api 键构建地图。还是一样。我只有在点击地图时才能看到它。
-
如果您以这种方式构建地图并且仍然收到这些消息,则意味着您错过了配置中的一步,因为不应出现开放街道地图。您可能得到一个异常或打印输出高于控制台中的输出。
标签: codenameone