可拖动,在 Google AppMaker 上

Draggable, on Google AppMaker

我需要一点指导,因为我还没有找到我需要的解释。

我正在 Google App Maker 上开发一个网站,我想在 Google Map Widget 上使用一个可拖动标记。

我找到的所有信息都类似于外部网站,包括 HTML 和 JavaScript 库。当我输入时显示错误:

var marker = new google.maps.Marker({
  position: latlon,
  map: map,
  draggable: true,
  title:"Drag me!"
});

"Uncaught TypeError: google.maps.Marker is not a constructor at var marker = new google.maps.Marker ({ (NewScript1: 143) ".

我在客户端脚本和服务器端脚本中都试过了。

问题,如果我想使用标记,我需要向 appmaker 添加库吗?

如果您想使用 Google 地图,您需要将其视为 App Maker API 中的一个小部件,这与 Google 地图 API 你正在使用。

如果您查看 App Maker API,您将了解如何向地图小部件添加标记以及如何 return 它们:https://developers.google.com/appmaker/scripting/api/widgets#GoogleMap

很可能您收到错误是因为您在加载地图 API 之前执行客户端脚本。要 100% 确定它已加载,您需要在 Google 地图小部件的 onAttach 事件中执行您的代码(也许 onDataLoad 也可以)。

如果您想让应用制作工具添加到地图的 Marker 默认可拖动,您可以使用此代码段:

// Google Map widget's onAttach event handler
var marker = widget.getAddressMarkerJs();
marker.setDraggable(true);

如果您想添加 all-new 个标记,您可以使用此代码段:

// Google Map widget's onAttach event handler
var map = widget.getMapJs();

var marker = new google.maps.Marker({
  position: { lat: 0, lng: 0 },
  map: map,
  draggable: true,
  title:"Drag me!"
});

奖金 从地图中删除默认标记的代码段

// Google Map widget's onAttach event handler
var marker = widget.getAddressMarkerJs();
marker.setMap(null);