Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/google-maps/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在NativeScript应用程序中将标记添加到地图_Javascript_Google Maps_Nativescript - Fatal编程技术网

Javascript 在NativeScript应用程序中将标记添加到地图

Javascript 在NativeScript应用程序中将标记添加到地图,javascript,google-maps,nativescript,Javascript,Google Maps,Nativescript,我正在使用构建一个NativeScript应用程序 我已经为coordinateTapped事件添加了一个eventlistener,现在它正在工作我想在地图上点击的位置绘制一个标记 我在网上或sdk文档中找不到这方面的示例。 我觉得我很接近,只是有一些小的修正要做 var mapsModule = require("nativescript-google-maps-sdk"); function onCoordinateTapped(args) { console.log("coor

我正在使用构建一个
NativeScript
应用程序

我已经为
coordinateTapped
事件添加了一个eventlistener,现在它正在工作我想在地图上点击的位置绘制一个标记

我在网上或sdk文档中找不到这方面的示例。 我觉得我很接近,只是有一些小的修正要做

var mapsModule = require("nativescript-google-maps-sdk");

function onCoordinateTapped(args) {
    console.log("coordinate tapped!");
    var mapView = args.object;
    var marker = new mapsModule.Marker();
    marker.position = mapsModule.Position.positionFromLatLng(args.latitude,args.longitude);
    mapView.addMarker(marker);
}

注意:我已经用
google maps
标记了这个问题,因为没有
nativescript google maps
标记。

嘿@Danoram您编写的代码看起来很不错,虽然没有XML文件,但我想您已经使用coordinateEvent传递了回退功能类似



这对你来说是可行的还是你正在经历某种错误/意外行为?从你的帖子中不完全清楚问题在哪里…

永远不要回答此类问题为时已晚

问题是
args
对象既没有
纬度
属性,也没有
经度
属性,因此您试图添加一个纬度和经度为
未定义
的标记

在您的函数中,可以访问两个不同的位置

首先,
args.object.latitude
args.object.longitude

var lat = args.object.latitude;
var lng = args.object.longitude;
var lat = args.position.latitude;
var lng = args.position.longitude;
这些属性代表地图的当前位置(你知道,地图的中心)

其次,
args.position.latitude
args.position.longitude

var lat = args.object.latitude;
var lng = args.object.longitude;
var lat = args.position.latitude;
var lng = args.position.longitude;
在本例中,这些属性表示点击在地图上的实际位置


另外,这对协调长按也有效。你好,尼克,是的,你是对的。我已将回调函数设置为
coordinateTapped
事件。当前的功能是,当我点击设备上的屏幕时,控制台输出“坐标点击!”,但不放置标记。一旦我获得Google API密钥,将尝试测试插件演示。。同时,如果它适用于您的情况,您可以使用其他插件,如nativescript geolocation。这里是如何添加标记的示例。一旦我有机会测试nativescript google maps sdkThanks@Nick,我会在下次有机会时尝试使用地理定位插件。我和我的朋友最终试图通过该应用程序实现的是使用谷歌地图的“交通层”功能来确定两点之间的旅行时间。我甚至不确定使用nativescript maps sdk是否可以做到这一点。感谢您抽出时间来写这篇文章!