volga-volga / react-native-yamap Goto Github PK
View Code? Open in Web Editor NEWReact Native Yandex Maps | Яндекс Карты | Yandex.MapKit implementation for react native | YandexMaps
React Native Yandex Maps | Яндекс Карты | Yandex.MapKit implementation for react native | YandexMaps
Пытаюсь выполнить вот эту рекомендацию:
Рекомендуется инициализировать MapKit в функции didFinishLaunchingWithOptions в AppDelegate.m
#import <YandexMapKit/YMKMapKitFactory.h>
...
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
...
[YMKMapKit setApiKey: @"API_KEY"];
return YES;
}
при этом не билдится релизная сборка с ошибкой: Use of undeclared identifier 'YMKMapKit', в дебаге все нормально.
В чем может быть причина?
Добавить события onMapPressIn и onMapPressOut
При использовании onMapPressLong, карта реагирует на нажатие в одной точке с задержкой. То есть если пользователь нажал на карту, скроллит и не отпускает, то событие не срабатывает.
Могу ли я получить x и y координаты экрана при клике по Marker. Или может есть возможность выводить дополнительное окно для отображения в нем информации по объекту рядом с маркером при клике по нему?
Крашится приложение при открытии страницы карт. Помогает это: (где была добавлена проверка на null) npm install git://github.com/volga-volga/react-native-yamap.git#2c55ee41aea
Но это я так понимаю очень старая версия, где например нельзя убрать отображение текущего местоположения пользователя (пропс не работает)
Помогите пожалуйста
Hi! I would like to know about adding theme for maps. Do you plan to add prop for this feature?
Под последние версии ios(симулятор, реальный девайс) не грузится карта вообще, белый холст(хотя другая интерактивность присутствует например выставление центра и зум), на android через раз грузиться.
Можно ли использовать как children у Marker Text и Image одновременно?
При запуске падает с ошибкой:
Версия последняя beta
‼️ Uncaught Exception: You need to set the API key before using MapKit!
{"activityRecognitionInterval":10000,"allowIdenticalLocations":false,"authorization":{},"autoSync":true,"autoSyncThreshold":0,"backgroundPermissionRationale":{"title":"Allow {applicationName} to access this device's location even when closed or not in use?","message":"[CHANGEME] This app collects location data for FEATURE X and FEATURE Y.","positiveAction":"Change to \"{backgroundPermissionOptionLabel}\"","negativeAction":""},"batchSync":false,"configUrl":"","debug":false,"deferTime":0,"desiredAccuracy":0,"desiredOdometerAccuracy":100,"disableAutoSyncOnCellular":false,"disableElasticity":false,"disableLocationAuthorizationAlert":false,"disableMotionActivityUpdates":false,"disableStopDetection":false,"distanceFilter":10,"elasticityMultiplier":1,"enableHeadless":false,"enableTimestampMeta":false,"extras":{},"fastestLocationUpdateInterval":-1,"foregroundService":true,"geofenceInitialTriggerEntry":true,"geofenceModeHighAccuracy":false,"geofenceProximityRadius":1000,"geofenceTemplate":"","headers":{},"headlessJobService":"com.transistorsoft.rnbackgroundgeolocation.HeadlessTask","heartbeatInterval":-1,"httpRootProperty":"location","httpTimeout":60000,"isMoving":false,"locationAuthorizationRequest":"Always","locationTemplate":"","locationTimeout":60,"locationUpdateInterval":1000,"locationsOrderDirection":"ASC","logLevel":0,"logMaxDays":3,"maxBatchSize":-1,"maxDaysToPersist":1,"maxRecordsToPersist":-1,"method":"POST","minimumActivityRecognitionConfidence":75,"motionTriggerDelay":0,"notification":{"layout":"","title":"","text":"Location Service activated","color":"","channelName":"TSLocationManager","smallIcon":"","largeIcon":"","priority":0,"sticky":false,"strings":{},"actions":[]},"params":{},"persist":true,"persistMode":2,"schedule":[],"scheduleUseAlarmManager":false,"speedJumpFilter":300,"startOnBoot":false,"stationaryRadius":25,"stopAfterElapsedMinutes":0,"stopOnStationary":false,"stopOnTerminate":true,"stopTimeout":5,"triggerActivities":"in_vehicle, on_bicycle, on_foot, running, walking","url":"","useSignificantChangesOnly":false,"enabled":false,"schedulerEnabled":false,"trackingMode":1,"odometer":0,"isFirstBoot":false,"didLaunchInBackground":false,"didDeviceReboot":false}
java.lang.AssertionError: You need to set the API key before using MapKit!
at com.yandex.mapkit.MapKitFactory.checkApiKey(MapKitFactory.java:67)
at com.yandex.mapkit.MapKitFactory.initialize(MapKitFactory.java:24)
at com.yandex.mapkit.mapview.MapView.<init>(MapView.java:53)
at com.yandex.mapkit.mapview.MapView.<init>(MapView.java:41)
at ru.vvdev.yamap.view.YamapView.<init>(YamapView.java:80)
at ru.vvdev.yamap.YamapViewManager.createViewInstance(YamapViewManager.java:118)
at ru.vvdev.yamap.YamapViewManager.createViewInstance(YamapViewManager.java:26)
at com.facebook.react.uimanager.ViewManager.createViewInstance(ViewManager.java:139)
at com.facebook.react.uimanager.ViewManager.createView(ViewManager.java:83)
at com.facebook.react.uimanager.NativeViewHierarchyManager.createView(NativeViewHierarchyManager.java:281)
at com.facebook.react.uimanager.UIViewOperationQueue$CreateViewOperation.execute(UIViewOperationQueue.java:188)
at com.facebook.react.uimanager.UIViewOperationQueue$DispatchUIFrameCallback.dispatchPendingNonBatchedOperations(UIViewOperationQueue.java:1103)
at com.facebook.react.uimanager.UIViewOperationQueue$DispatchUIFrameCallback.doFrameGuarded(UIViewOperationQueue.java:1074)
at com.facebook.react.uimanager.GuardedFrameCallback.doFrame(GuardedFrameCallback.java:29)
at com.facebook.react.modules.core.ReactChoreographer$ReactChoreographerDispatcher.doFrame(ReactChoreographer.java:175)
at com.facebook.react.modules.core.ChoreographerCompat$FrameCallback$1.doFrame(ChoreographerCompat.java:85)
При вызове метода fitAllMarkers на андроид точки к которым применяется фит имеют отступы от краев карты, в отличие от IOS, где точки отображаются на самых границах
Привет. Есть возможность изменять цвет у окружности, которая появляется вокруг маркера с местоположением пользователя, во время слабого соединения с интернетом? Или же вообще отключить появление этой окружности?
Можно ли сделать вместо image передавать компонент реакт
Для ios метод getCameraPosition выдает ошибку. Для android все ОК.
Когда возвращаешься на экран с картой, перестает работать клик на маркеры
Маршрут не строится, в console.log SyntheticEvent, у всех свойств значение null
Добрый день, столкнулся со следующей проблемой - не могу скроллить к позиции пользователя при загрузке карты. Как это можно сделать?
Хочется сделать скриншот карты, аналогично react-native-maps takeSnapshot
<YaMap
onMapPress={(point) => {
setFirstDot(point.nativeEvent);
}}
onMapLongPress={(point) => setSecondDot(point.nativeEvent)}
ref={mapRef}
nightMode={false}
userLocationIcon={require('./src/img/pin.png')}
style={{flex: 1, marginVertical: 70}}
userLocationAccuracyFillColor="gray"
>
<Polyline points={points} strokeColor="red" strokeWidth={3} />
</YaMap>
При использовании Geocoder.geoToAddress()
запрос возвращает null
Код:
const Map = () => {
YaMap.init(YAMAP_API);
Geocoder.init(GEO_API);
YaMap.setLocale('ru_RU');
const [activePoint, setPoint] = useState({"lat": 0, "lon": 0});
const [activeZoom, setZoom] = useState(10)
const _onMapPress = (point: any) => {
console.log(point.nativeEvent)
console.log(Geocoder.geoToAddress(p.nativeEvent))
setPoint(point.nativeEvent)
}
return (
<YaMap
onMapPress={(point) => {_onMapPress(point)}}
style={{ flex: 1, }}
>
<Marker point={activePoint}/>
</YaMap>
)
}
Лог:
LOG {"lat": 51.82748814030343, "lon": 101.08263667140687}
LOG {"_40": 0, "_55": null, "_65": 0, "_72": null}
LOG {"lat": 51.965713775394576, "lon": 101.18359310286388}
LOG {"_40": 0, "_55": null, "_65": 0, "_72": null}
Полученный API-ключ:
На последней версии 1.1.0-beta на IOS версии событие у карты YaMap onMapLongPress работает как onMapPress.
"react": "17.0.1",
"react-native": "^0.64.1",
Добавьте пожалуйста возможность передачи координат в точке нажатия, для генерации маркеров в этих точках! Очень не хватает.
Перестало работать после обновления до 1.0.5
Если YaMap помещен в ScrollView, то управлять картой невозможно, у react-native-maps такого нет
Какие бы параметры не передавали в карту - её центр и зум не меняется
Можно ли отключить возможность перемещения по карте?
Добавить props-свойство initialRegion
в компонент устанавливающее изначальное местоположение карты при загрузке.
<YaMap
initialRegion={{
"lat": 37.78825,
"lon": -122.4324,
}}>
</YaMap>
Привет! Можешь добавить якорь для компонента Marker?
На скриншоте показано, что не все иконки отображаются.
Использую компонент Marker, children={} (Обычная картинка, добавил заливку для наглядности)
export const MarkerImage = () => {
return (
<Image
style={{
width: 25,
height: 25,
backgroundColor: 'blue',
}}
source={require('../../../assets/icons/marker.png')}
/>
);
};
Как сделать корректный рендер? Есть ли другой способ задать иконку маркера?
Дополнительно:
markersToRender.map((point, key) => (
<Marker
key={key}
point={{
lon: point.Coordinates.Longitude,
lat: point.Coordinates.Latitude,
}}
onPress={() => onMarkerPress(point)}>
<MarkerImage />
</Marker>
))
)}
Как можно при инициализации карты сразу приблизить нужный район?
Не хватает функции кластеризации маркеров на карте, и колбэка onCameraPositionChangeEnd
Привет! Очень не хватает метода setZoom(). Например, пользователь пролистал карту до определенной точки и хочет с помощью кнопки приблизить || отдалить ее
При добавлении инициализации с помощью YaMap.init() приложение падает без ошибки. Единственное что удалось найти в логах:
02-09 14:15:04.687 25376 31284 E ReactNativeJNI: logMarker RUN_JS_BUNDLE_END
02-09 14:15:04.701 25376 31284 I ReactNativeJS: Running "BazhenMP" with {"rootTag":1}
02-09 14:15:04.812 3987 8704 D ActivityTaskManager: setRequestedOrientation(1) from com.bazhenmp
02-09 14:15:04.837 25376 25376 F libc : Fatal signal 4 (SIGILL), code 1 (ILL_ILLOPC), fault addr 0xf23aebf0 in tid 25376 (com.bazhenmp), pid 25376 (com.bazhenmp)
02-09 14:15:04.970 31325 31325 E crash_dump32: unknown process state: t
02-09 14:15:05.013 31325 31325 I crash_dump32: obtaining output fd from tombstoned, type: kDebuggerdTombstone
02-09 14:15:05.014 3692 3692 I /system/bin/tombstoned: received crash request for pid 25376
02-09 14:15:05.016 31325 31325 I crash_dump32: performing dump of process 25376 (target tid = 25376)
02-09 14:15:05.058 31325 31325 F DEBUG : *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
02-09 14:15:05.058 31325 31325 F DEBUG : Build fingerprint: 'samsung/gta3xlwifiser/gta3xlwifi:10/QP1A.190711.020/T510XXU3BTK1:user/release-keys'
02-09 14:15:05.058 31325 31325 F DEBUG : Revision: '4'
02-09 14:15:05.058 31325 31325 F DEBUG : ABI: 'arm'
02-09 14:15:05.060 31325 31325 F DEBUG : Timestamp: 2021-02-09 14:15:05+0300
02-09 14:15:05.060 31325 31325 F DEBUG : pid: 25376, tid: 25376, name: com.bazhenmp >>> com.bazhenmp <<<
02-09 14:15:05.060 31325 31325 F DEBUG : uid: 10242
02-09 14:15:05.060 31325 31325 F DEBUG : signal 4 (SIGILL), code 1 (ILL_ILLOPC), fault addr 0xf23aebf0 (*pc=0xd4d4defe)
02-09 14:15:05.060 31325 31325 F DEBUG : r0 00000008 r1 ffe46940 r2 ffe46998 r3 f23aebf1
02-09 14:15:05.060 31325 31325 F DEBUG : r4 ffe46998 r5 00000008 r6 ffe46940 r7 af3d3bfc
02-09 14:15:05.061 31325 31325 F DEBUG : r8 ffe46bdc r9 00000000 r10 00000000 r11 f2f3b000
02-09 14:15:05.061 31325 31325 F DEBUG : ip af8dd700 sp ffe46940 lr f23b1e48 pc f23aebf0
02-09 14:15:05.067 31325 31325 F DEBUG :
02-09 14:15:05.067 31325 31325 F DEBUG : backtrace:
02-09 14:15:05.067 31325 31325 F DEBUG : #00 pc 000a9bf0 /apex/com.android.runtime/lib/bionic/libc.so (__aeabi_unwind_cpp_pr0) (BuildId: 011453e9eae384071507fdee556c1474)
02-09 14:15:05.067 31325 31325 F DEBUG : #01 pc 000ace44 /apex/com.android.runtime/lib/bionic/libc.so (__gnu_Unwind_Backtrace+160) (BuildId: 011453e9eae384071507fdee556c1474)
02-09 14:15:05.067 31325 31325 F DEBUG : #02 pc 000ad778 /apex/com.android.runtime/lib/bionic/libc.so (_Unwind_Backtrace+20) (BuildId: 011453e9eae384071507fdee556c1474)
02-09 14:15:05.067 31325 31325 F DEBUG : #03 pc 00000034 <unknown>
UPD: падает при MapKitFactory.initialize(reactContext)
Добавить кеширование bitmap по url и удалять его если никто его не использует
Использую react-native cli
Код взял из примера, ключ рабочий
`import React from 'react';
import YaMap from 'react-native-yamap';
YaMap.init('ххх');
class Map extends React.Component {
handleOnRouteFound(event: any) {
console.log(event.nativeEvent.routes);
}
render() {
return (
<YaMap
userLocationIcon={{
uri: 'https://www.clipartmax.com/png/middle/180-1801760_pin-png.png',
}}
style={{ flex: 1 }}
/>
);
}
}
export default Map;`
Размер userLocationIcon отличается в release и debug версиях, что отражено в Readme.
Но могу ли я задать размер этой иконки?
RN 0.61.5
react-native-yamap: 1.0.20
В результате вижу серую сетку с логотипом яндекса
`
import React from 'react';
import { YANDEX_API_KEY } from 'react-native-dotenv';
import YaMap from 'react-native-yamap';
YaMap.init(YANDEX_API_KEY);
const Map = () => {
return <YaMap style={{ flex: 1, height: 200 }} />;
};
export default Map;
`
На android ошибка Invariant Violation requireNativeComponent AirMap was not found i UiManager
When packing .ipa, if additional option "Rebuild from Bitecode" is checked then i get error: "ipatool failed with an exception: #<CmdSpec::NonZeroExitException". When unchecked everything is fine.
"react": "16.13.1",
"react-native": "0.63.2",
"react-native-yamap": "1.0.20"
Xcode version 11.2.1.
Is it problem with my settings or this library?
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.